package cl.monsoon.s1next.data.api;
import cl.monsoon.s1next.data.api.model.wrapper.FavouritesWrapper;
import cl.monsoon.s1next.data.api.model.wrapper.ForumGroupsWrapper;
import cl.monsoon.s1next.data.api.model.wrapper.PostsWrapper;
import cl.monsoon.s1next.data.api.model.wrapper.ResultWrapper;
import cl.monsoon.s1next.data.api.model.wrapper.ThreadsWrapper;
import retrofit2.Response;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
import rx.Observable;
public interface S1Service {
@GET(Api.URL_FORUM)
Observable<ForumGroupsWrapper> getForumGroupsWrapper();
@GET(Api.URL_FAVOURITES)
Observable<FavouritesWrapper> getFavouritesWrapper(@Query("page") int page);
@GET(Api.URL_THREAD_LIST)
Observable<ThreadsWrapper> getThreadsWrapper(@Query("fid") String forumId, @Query("page") int page);
@GET(Api.URL_POST_LIST)
Observable<PostsWrapper> getPostsWrapper(@Query("tid") String threadId, @Query("page") int page);
@GET(Api.URL_QUOTE_POST_REDIRECT)
Observable<Response<Void>> getQuotePostResponseBody(@Query("ptid") String threadId, @Query("pid") String quotePostId);
@FormUrlEncoded
@POST(Api.URL_LOGIN)
Observable<ResultWrapper> login(@Field("username") String username, @Field("password") String password);
@GET(Api.URL_AUTHENTICITY_TOKEN_HELPER)
Observable<ResultWrapper> refreshAuthenticityToken();
@FormUrlEncoded
@POST(Api.URL_THREAD_FAVOURITES_ADD)
Observable<ResultWrapper> addThreadFavorite(@Field("formhash") String authenticityToken, @Field("id") String threadId, @Field("description") String remark);
@FormUrlEncoded
@POST(Api.URL_REPLY)
Observable<ResultWrapper> reply(@Field("formhash") String authenticityToken, @Field("tid") String threadId, @Field("message") String reply);
@GET(Api.URL_QUOTE_HELPER)
Observable<String> getQuoteInfo(@Query("tid") String threadId, @Query("repquote") String quotePostId);
@FormUrlEncoded
@POST(Api.URL_REPLY)
Observable<ResultWrapper> replyQuote(@Field("formhash") String authenticityToken, @Field("tid") String threadId, @Field("message") String reply,
@Field("noticeauthor") String encodedUserId, @Field("noticetrimstr") String quoteMessage, @Field("noticeauthormsg") String replyNotification);
}