package uk.ac.ic.wlgitbridge.snapshot.push;
import com.google.api.client.auth.oauth2.Credential;
import com.google.gson.JsonElement;
import uk.ac.ic.wlgitbridge.data.CandidateSnapshot;
import uk.ac.ic.wlgitbridge.snapshot.base.HTTPMethod;
import uk.ac.ic.wlgitbridge.snapshot.base.SnapshotAPIRequest;
import uk.ac.ic.wlgitbridge.snapshot.exception.FailedConnectionException;
/**
* Created by Winston on 16/11/14.
*/
public class PushRequest extends SnapshotAPIRequest<PushResult> {
private static final String API_CALL = "/snapshots";
private final CandidateSnapshot candidateSnapshot;
private final String postbackKey;
public PushRequest(Credential oauth2, CandidateSnapshot candidateSnapshot, String postbackKey) {
super(candidateSnapshot.getProjectName(), API_CALL, oauth2);
this.candidateSnapshot = candidateSnapshot;
this.postbackKey = postbackKey;
}
@Override
protected HTTPMethod httpMethod() {
return HTTPMethod.POST;
}
@Override
protected String getPostBody() {
return candidateSnapshot.getJsonRepresentation(postbackKey).toString();
}
@Override
protected PushResult parseResponse(JsonElement json) throws FailedConnectionException {
return new PushResult(this, json);
}
}