package com.cheikh.lazywaimai.network.service;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import retrofit2.http.Query;
import rx.Observable;
import com.cheikh.lazywaimai.model.bean.Favorite;
import com.cheikh.lazywaimai.model.bean.ResultsPage;
import com.cheikh.lazywaimai.model.bean.User;
public interface AccountService {
/**
* 发送验证码
* @param mobile
* @return
*/
@FormUrlEncoded
@POST("users?action=send_code")
Observable<Boolean> sendCode(@Field("mobile") String mobile);
/**
* 检查验证码
* @param mobile
* @param code
* @return
*/
@FormUrlEncoded
@POST("users?action=verify_code")
Observable<Boolean> verifyCode(@Field("mobile") String mobile, @Field("code") String code);
/**
* 创建帐号
* @param mobile
* @param password
* @return
*/
@FormUrlEncoded
@POST("users?action=create_user")
Observable<Boolean> register(@Field("mobile") String mobile, @Field("password") String password);
/**
* 获取用户资料
* @param id
* @return
*/
@GET("users/{id}")
Observable<User> profile(@Path("id") String id);
/**
* 设置默认地址
* @param userId
* @param addressId
* @return
*/
@FormUrlEncoded
@PUT("users/{id}")
Observable<User> setLastAddress(@Path("id") String userId, @Field("last_address_id") String addressId);
/**
* 修改头像
* @param userId
* @param avatarUrl
* @return
*/
@FormUrlEncoded
@PUT("users/{id}")
Observable<User> updateAvatar(@Path("id") String userId, @Field("avatar_url") String avatarUrl);
/**
* 分页获取收藏
* @param page
* @param size
* @return
*/
@GET("users/favorites")
Observable<ResultsPage<Favorite>> favorites(@Query("page") int page, @Query("size") int size);
/**
* 设置用户名
* @param userId
* @param username
* @return
*/
@FormUrlEncoded
@PUT("users/{id}")
Observable<User> setUsername(@Path("id") String userId, @Field("username") String username);
/**
* 设置昵称
* @param userId
* @param nickname
* @return
*/
@FormUrlEncoded
@PUT("users/{id}")
Observable<User> setNickname(@Path("id") String userId, @Field("nickname") String nickname);
}