package com.creatubbles.api.repository;

import android.support.annotation.NonNull;
import android.support.annotation.Nullable;

import com.creatubbles.api.model.AuthToken;
import com.creatubbles.api.response.ResponseCallback;

/**
 * @author Matthew Platek on 11.02.2016.
 */
public interface OAuthRepository {

    void authorize(ResponseCallback<AuthToken> callback);

    void authorize(String login, String password, ResponseCallback<AuthToken> callback);

    void setClientId(String clientId);

    void setClientSecret(String clientSecret);

    /**
     * Method used to retrieve an access token for one of current user's managed creators without their password.
     *
     * @param currentToken current user's access token
     * @param targetUserId the user for which to obtain an access token
     * @param groupId      (optional) limits further user switching to the given group
     */
    void switchUser(@NonNull AuthToken currentToken, @NonNull String targetUserId, @Nullable String groupId, ResponseCallback<AuthToken> callback);
}

@@ -314,62 +314,774 @@
     
-void authorize(ResponseCallback%3CAuthToken%3E callback);%0A
+/**%0A     * Method used to obtain %3Cstrong%3EApplication only access token%3C/strong%3E.%0A     * This token will give you access to publicly available information and actions.%0A     * Use this type of access token if you want to retrieve content independent from any users.%0A     */%0A    void authorize(ResponseCallback%3CAuthToken%3E callback);%0A%0A    /**%0A     * Method used to obtain %3Cstrong%3EUser access token%3C/strong%3E. User access tokens extend your access rights to allow your%0A     * application to also access content and actions which have restricted visibility and are available%0A     * for the user the access token was issued for. The user access token basically allows you to retrieve%0A     * content and execute actions on behalf of the user the token was issued for.%0A     */
 %0A   

Add JavaDoc to authorization methods