package com.alorma.github.sdk.services.repo;
import com.alorma.github.sdk.bean.dto.response.GithubStatusResponse;
import com.alorma.github.sdk.bean.info.RepoInfo;
import com.alorma.github.sdk.services.client.GithubListClient;
import retrofit.RestAdapter;
public class GetShaCombinedStatus extends GithubListClient<GithubStatusResponse> {
private final RepoInfo repoInfo;
private String ref;
private int page;
public GetShaCombinedStatus(RepoInfo repoInfo, String ref) {
this(repoInfo, ref, 0);
}
public GetShaCombinedStatus(RepoInfo repoInfo, String ref, int page) {
super();
this.repoInfo = repoInfo;
this.ref = ref;
this.page = page;
}
@Override
protected ApiSubscriber getApiObservable(RestAdapter restAdapter) {
return new ApiSubscriber() {
@Override
protected void call(RestAdapter restAdapter) {
RepoService repoService = restAdapter.create(RepoService.class);
if (page == 0) {
repoService.combinedStatusASync(getOwner(), getRepo(), ref, this);
} else {
repoService.combinedStatusASync(getOwner(), getRepo(), ref, page, this);
}
}
};
}
private String getOwner() {
return repoInfo.owner;
}
private String getRepo() {
return repoInfo.name;
}
}