package com.alorma.github.sdk.services.reference;
import com.alorma.github.sdk.bean.info.RepoInfo;
import com.alorma.github.sdk.services.client.GithubClient;
import com.alorma.github.sdk.services.reference.GitReferenceService;
import retrofit.RestAdapter;
import retrofit.client.Response;
import rx.Observable;
import rx.functions.Func1;
public class DeleteReferenceClient extends GithubClient<Boolean> {
private final RepoInfo info;
private String ref;
public DeleteReferenceClient(RepoInfo repoInfo, String ref) {
super();
this.info = repoInfo;
this.ref = GitReferenceService.HEADS + ref;
}
@Override
protected Observable<Boolean> getApiObservable(RestAdapter restAdapter) {
return restAdapter.create(GitReferenceService.class)
.deleteReference(info.owner, info.name, ref)
.map(new Func1<Response, Boolean>() {
@Override
public Boolean call(Response r) {
return r != null && r.getStatus() == 204;
}
});
}
}