package com.betaseries.betaseries.webservice; import com.betaseries.betaseries.model.BetaSerieResponse; import retrofit.http.DELETE; import retrofit.http.Field; import retrofit.http.FormUrlEncoded; import retrofit.http.GET; import retrofit.http.POST; import retrofit.http.Query; import rx.Observable; /** * Created by florentchampigny on 02/08/15. */ public interface BetaSeriesAPI { @GET("/episodes/display") //.episode Observable<Object> episodeDetail(@Query("id") String id); @FormUrlEncoded @POST("/episodes/downloaded") Observable<Object> episodeMarquerTelecharge(@Field("id") String id); @DELETE("/episodes/downloaded") Observable<Object> episodeEnleverTelecharge(@Query("id") String id); @GET("/episodes/latest") //.episode Observable<Object> episodeDernierDiffuse(@Query("id") String id); @GET("/episodes/next") Observable<Object> episodeProchainDiffuse(@Query("id") String id); @FormUrlEncoded @POST("/episodes/note") Observable<Object> episodeNoter(@Field("id") Integer id, @Field("note") int note); //1 à 5 @DELETE("/episodes/note") Observable<Object> episodeEnleverNote(@Query("id") String id); //1 à 5 @GET("/episodes/search") //.episode Observable<Object> episodeRecherche(@Query("show_id") String idSerie, @Query("number") String numero); //numero : SxxExx @FormUrlEncoded @POST("/episodes/watched") Observable<Object> episodeMarquerVu(@Field("id") Integer id); @FormUrlEncoded @POST("/episodes/watched") Observable<Object> episodesMarquerVu(@Field("id") String ids); //episodes separés par une virgule @DELETE("/episodes/watched") Observable<Object> episodeEnleverVu(@Query("id") String ids); //endregion //region shows @FormUrlEncoded @POST("/shows/archive") Observable<Object> serieArchiverDansMonCompte(@Field("id") String serieId); @DELETE("/shows/archive") Observable<Object> serieRetirerDansMonCompte(@Query("id") String serieId); @GET("/shows/characters") Observable<BetaSerieResponse> serieListePersonnages(@Query("id") String serieId); @GET("/shows/display") //.show Observable<BetaSerieResponse> serieInformations(@Query("id") String serieId); @GET("/shows/episodes") //.episodes Observable<BetaSerieResponse> serieListeEpisodes(@Query("id") String serieId); @FormUrlEncoded @POST("/shows/favorite") Observable<Object> serieAjouterFavoris(@Field("id") String serieId); @DELETE("/shows/favorite") Observable<Object> serieRetirerFavoris(@Query("id") String serieId); @GET("/shows/favorites") //.shows Observable<BetaSerieResponse> serieFavorisDe(@Query("id") String membreId); @GET("/shows/list") //.shows Observable<BetaSerieResponse> serieListeSeries(@Query("order") String order, @Query("since") long since); //order : alphabetical, popularity, followers //since : N'afficher que les séries modifiées à partir de cette date (timestamp UNIX) @FormUrlEncoded @POST("/shows/note") Observable<Object> serieNoter(@Field("id") String serieId, @Field("note") int note); //note de 1 à 5 @DELETE("/shows/note") Observable<Object> serieRetirerNote(@Query("id") String serieId); @GET("/shows/pictures") Observable<Object> serieListeImages(@Query("id") String serieId); //.pictures @GET("/shows/random") //.shows Observable<BetaSerieResponse> serieAuHasard(@Query("nb") int nombre); @FormUrlEncoded @POST("/shows/recommendation") Observable<Object> serieRecommanderAUnAmi(@Field("id") String serieId, @Field("to") String amiId, @Field("comment") String commentaire); @DELETE("/shows/recommendation") Observable<Object> serieRetirerRecommanderAUnAmi(@Query("id") String recommandationID); @GET("/shows/recommendations") Observable<Object> serieMesRecommandations(); @GET("/shows/search") //.shows Observable<Object> serieRecherche(@Query("title") String title, @Query("order") String order, @Query("npp") int nombreParPage, @Query("page") int page); //order : alphabetical, popularity, followers //page : default 1 @FormUrlEncoded @POST("/shows/show") Observable<Object> serieAjouterAMaListe(@Field("id") String serieId); @DELETE("/shows/show") Observable<Object> serieRetirerDeMaListe(@Query("id") String serieId); @GET("/shows/similars") Observable<BetaSerieResponse> serieSimilaires(@Query("id") String serieId); //.similars @GET("/shows/videos") Observable<Object> serieListeVideos(@Query("id") String serieId); //.videos @FormUrlEncoded @POST("/shows/tags") Observable<Object> serieModifierTags(@Field("id") String serieId, @Field("tags") String tags); //tags separés par une virgule @GET("/members/infos") Observable<BetaSerieResponse> getInfosUser(@Query("summary") String summary,@Query("only") String only); @GET("/members/infos?summary=true") Observable<BetaSerieResponse> getInfosUserSummary(); @GET("/planning/general") Observable<BetaSerieResponse> planning_general(); @GET("/planning/member") Observable<BetaSerieResponse> planning_member(); @GET("/comments/comments") Observable<BetaSerieResponse> comments(@Query("type") String type,@Query("id") String id,@Query("nbpp") String nbpp,@Query("replies") String replies); @FormUrlEncoded @POST("/comments/comment") Observable<BetaSerieResponse> commenter(@Field("type") String type,@Field("id") String id,@Field("text") String text,@Field("in_reply_to") String in_reply_to); @FormUrlEncoded @POST("/episodes/watched") Observable<BetaSerieResponse> episodeWatched(@Field("id") String id); @DELETE("/episodes/watched") Observable<BetaSerieResponse> episodeNotWatched(@Query("id") String id); @GET("/comments/replies") Observable<BetaSerieResponse> replies(@Query("id") String id); @GET("/episodes/list") Observable<BetaSerieResponse> episodeListAVoir(); }