package org.estgroup.phphub.api;
import com.google.gson.JsonObject;
import org.estgroup.phphub.R;
import org.estgroup.phphub.api.entity.NotificationEntity;
import org.estgroup.phphub.api.entity.TopicEntity;
import org.estgroup.phphub.api.entity.UserEntity;
import org.estgroup.phphub.api.entity.element.User;
import java.util.Map;
import eu.unicate.retroauth.annotations.Authenticated;
import eu.unicate.retroauth.annotations.Authentication;
import retrofit.http.Body;
import retrofit.http.GET;
import retrofit.http.PUT;
import retrofit.http.Path;
import retrofit.http.QueryMap;
import rx.Observable;
@Authentication(accountType = R.string.auth_account_type, tokenType = R.string.auth_token_type)
public interface UserApi {
@GET("/me")
Observable<UserEntity.AUser> getMyselfInfo();
@GET("/users/{userId}")
Observable<UserEntity.AUser> getUserInfo(@Path("userId") int userId);
@GET("/user/{userId}/attention/topics")
Observable<TopicEntity> getAttentions(@Path("userId") int userId,
@QueryMap Map<String, String> options);
@GET("/user/{userId}/favorite/topics")
Observable<TopicEntity> getFavorites(@Path("userId") int userId,
@QueryMap Map<String, String> options);
@GET("/user/{userId}/topics")
Observable<TopicEntity> getTopics(@Path("userId") int userId,
@QueryMap Map<String, String> options);
@GET("/me/notifications")
Observable<NotificationEntity> getMyNotifications(@QueryMap Map<String, String> options);
@GET("/me/notifications/count")
Observable<JsonObject> getUnreadNotifications();
@PUT("/users/{userId}")
Observable<UserEntity.AUser> saveUserProfile(@Path("userId") int userId,
@Body User userInfo);
}