package com.khmelenko.lab.varis.task.travis;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import com.khmelenko.lab.varis.event.travis.BuildDetailsLoadedEvent;
import com.khmelenko.lab.varis.event.travis.LoadingFailedEvent;
import com.khmelenko.lab.varis.network.response.BuildDetails;
import com.khmelenko.lab.varis.task.Task;
import com.khmelenko.lab.varis.task.TaskError;
import com.khmelenko.lab.varis.task.TaskException;
/**
* Task for getting build details
*
* @author Dmytro Khmelenko
*/
public class BuildDetailsTask extends Task<BuildDetails> {
private String mRepoSlug;
private long mRepoId;
private final long mBuildId;
public BuildDetailsTask(@NonNull String repoSlug, long buildId) {
mRepoSlug = repoSlug;
mBuildId = buildId;
}
public BuildDetailsTask(long repoId, long buildId) {
mRepoId = repoId;
mBuildId = buildId;
}
@Override
public BuildDetails execute() throws TaskException {
BuildDetails details;
if (!TextUtils.isEmpty(mRepoSlug)) {
details = travisClient().getApiService().getBuild(mRepoSlug, mBuildId);
} else {
details = travisClient().getApiService().getBuild(mRepoId, mBuildId);
}
return details;
}
@Override
public void onSuccess(BuildDetails result) {
BuildDetailsLoadedEvent event = new BuildDetailsLoadedEvent(result);
eventBus().post(event);
}
@Override
public void onFail(TaskError error) {
LoadingFailedEvent event = new LoadingFailedEvent(error);
eventBus().post(event);
}
}