package se.leiflandia.lroi.network;
import com.google.gson.JsonElement;
import retrofit.Callback;
import retrofit.http.Body;
import retrofit.http.GET;
import retrofit.http.Header;
import retrofit.http.POST;
import se.leiflandia.lroi.auth.model.AccessToken;
import se.leiflandia.lroi.auth.model.ChangePasswordRequest;
import se.leiflandia.lroi.auth.model.RefreshTokenCredentials;
import se.leiflandia.lroi.auth.model.ResetPassword;
import se.leiflandia.lroi.auth.model.RevocationRequest;
import se.leiflandia.lroi.auth.model.DUser;
import se.leiflandia.lroi.auth.model.UserCredentials;
public interface AuthApi {
@POST("/oauth/authorize")
public AccessToken authorize(@Body UserCredentials credentials);
@POST("/oauth/authorize")
public void authorize(@Body UserCredentials credentials, Callback<AccessToken> callback);
@POST("/oauth/refresh")
public AccessToken refreshAccessToken(@Body RefreshTokenCredentials credentials);
@POST("/api/user")
public void signup(@Body DUser user, Callback<String> callback);
@POST("/oauth/revoke")
public void revoke(@Body RevocationRequest request, Callback<String> callback);
@GET("/api/user/me")
public void me(Callback<JsonElement> callback);
@POST("/api/user/password/reset")
public void resetPassword(@Body ResetPassword request, Callback<JsonElement> callback);
@POST("/api/user/me/password")
public void changePassword(@Header("Authorization") String authorization, @Body ChangePasswordRequest request, Callback<JsonElement> callback);
}