package com.api;
import com.app.annotation.apt.ApiFactory;
import com.base.entity.CreatedResult;
import com.base.entity.DataArr;
import com.base.entity.Face;
import com.model.Image;
import com.model.Comment;
import com.model.CommentInfo;
import com.model.ImageInfo;
import com.model.Message;
import com.model.MessageInfo;
import com.model._User;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import retrofit2.http.Query;
import rx.Observable;
/**
* Created by Administrator on 2016/3/23.
*/
@ApiFactory
public interface ApiService {
@GET("login")
Observable<_User> login(@Query("username") String username, @Query("password") String password);
@POST("users")
Observable<CreatedResult> createUser(@Body _User user);
@GET("users")
Observable<DataArr<_User>> getAllUser(@Query("skip") int skip, @Query("limit") int limit);
@GET("classes/Image")
Observable<DataArr<ImageInfo>> getAllImages(@Query("where") String where, @Query("skip") int skip, @Query("limit") int limit, @Query("order") String order);
@POST("classes/Image")
Observable<CreatedResult> createArticle(@Body Image mArticle);
@GET("classes/Comment")
Observable<DataArr<CommentInfo>> getCommentList(@Query("include") String include, @Query("where") String where, @Query("skip") int skip, @Query("limit") int limit);
@POST("classes/Comment")
Observable<CreatedResult> createComment(@Body Comment mComment);
@Headers("Content-Type: image/png")
@POST("files/{name}")
Observable<CreatedResult> upFile(@Path("name") String name, @Body RequestBody body);
@PUT("users/{uid}")
Observable<CreatedResult> upUser(@Header("X-LC-Session") String session, @Path("uid") String uid, @Body Face face);
@POST("classes/Message")
Observable<CreatedResult> createMessage(@Body Message mComment);
@GET("classes/Message")
Observable<DataArr<MessageInfo>> getMessageList(@Query("include") String include, @Query("where") String where, @Query("skip") int skip, @Query("limit") int limit, @Query("order") String order);
}