package com.alorma.github.sdk.services.user; import com.alorma.github.sdk.bean.dto.response.Email; import core.User; import java.util.List; import retrofit.Callback; import retrofit.client.Response; import retrofit.http.Body; import retrofit.http.DELETE; import retrofit.http.GET; import retrofit.http.PUT; import retrofit.http.Path; import retrofit.http.Query; import rx.Observable; /** * Created by Bernat on 12/07/2014. */ public interface UsersService { // Followers @GET("/user/followers") void followers(Callback<List<User>> callback); @GET("/users/{orgName}/followers") void followers(@Path("orgName") String username, Callback<List<User>> callback); @GET("/user/followers") void followers(@Query("page") int page, Callback<List<User>> callback); @GET("/users/{orgName}/followers") void followers(@Path("orgName") String username, @Query("page") int page, Callback<List<User>> callback); // Following @GET("/user/following") void following(Callback<List<User>> callback); @GET("/users/{orgName}/following") void following(@Path("orgName") String username, Callback<List<User>> callback); @GET("/user/following") void following(@Query("page") int page, Callback<List<User>> callback); @GET("/users/{orgName}/following") void following(@Path("orgName") String username, @Query("page") int page, Callback<List<User>> callback); //ORGS MEMBERS @GET("/orgs/{org}/members") void orgMembers(@Path("org") String org, Callback<List<User>> callback); @GET("/orgs/{org}/members") void orgMembers(@Path("org") String org, @Query("page") int page, Callback<List<User>> callback); //Sync @GET("/users/{user}") Observable<User> getSingleUser(@Path("user") String user); @GET("/user/emails") Observable<List<Email>> userEmails(); @GET("/user") Observable<User> me(); // FOLLOWING USER @GET("/user/following/{orgName}") Observable<Response> checkFollowing(@Path("orgName") String username); @PUT("/user/following/{orgName}") Observable<Response> followUser(@Body String empty, @Path("orgName") String username); @DELETE("/user/following/{orgName}") Observable<Response> unfollowUser(@Path("orgName") String username); }