package com.khmelenko.lab.varis.task.travis;
import android.text.TextUtils;
import com.khmelenko.lab.varis.event.travis.LoadingFailedEvent;
import com.khmelenko.lab.varis.event.travis.RepoLoadedEvent;
import com.khmelenko.lab.varis.network.response.Repo;
import com.khmelenko.lab.varis.task.Task;
import com.khmelenko.lab.varis.task.TaskError;
import com.khmelenko.lab.varis.task.TaskException;
/**
* Task for loading repositories
*
* @author Dmytro Khmelenko
*/
public class RepoTask extends Task<Repo> {
private long mRepositoryId;
private String mRepositorySlug;
public RepoTask(long repositoryId) {
mRepositoryId = repositoryId;
}
public RepoTask(String repositorySlug) {
mRepositorySlug = repositorySlug;
}
@Override
public Repo execute() throws TaskException {
Repo repo = null;
if(!TextUtils.isEmpty(mRepositorySlug)) {
repo = travisClient().getApiService().getRepo(mRepositorySlug);
} else {
repo = travisClient().getApiService().getRepo(mRepositoryId);
}
return repo;
}
@Override
public void onSuccess(Repo result) {
RepoLoadedEvent event = new RepoLoadedEvent(result);
eventBus().post(event);
}
@Override
public void onFail(TaskError error) {
LoadingFailedEvent event = new LoadingFailedEvent(error);
eventBus().post(event);
}
}