package com.khmelenko.lab.varis.task.travis; import com.khmelenko.lab.varis.event.travis.AuthFailEvent; import com.khmelenko.lab.varis.event.travis.AuthSuccessEvent; import com.khmelenko.lab.varis.network.request.AccessTokenRequest; import com.khmelenko.lab.varis.network.response.AccessToken; import com.khmelenko.lab.varis.task.Task; import com.khmelenko.lab.varis.task.TaskError; import com.khmelenko.lab.varis.task.TaskException; /** * Authentication task for Travis * * @author Dmytro Khmelenko */ public class AuthTask extends Task<AccessToken> { private final String mGithubAccessToken; public AuthTask(String githubAccessToken) { mGithubAccessToken = githubAccessToken; } @Override public AccessToken execute() throws TaskException { AccessTokenRequest request = new AccessTokenRequest(); request.setGithubToken(mGithubAccessToken); AccessToken accessToken = travisClient().getApiService().auth(request); return accessToken; } @Override public void onSuccess(AccessToken result) { AuthSuccessEvent successEvent = new AuthSuccessEvent(result.getAccessToken()); eventBus().post(successEvent); } @Override public void onFail(TaskError error) { AuthFailEvent failEvent = new AuthFailEvent(error); eventBus().post(failEvent); } }