com.twilio.rest.studio.v1.flow.ExecutionUpdater Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of twilio Show documentation
Show all versions of twilio Show documentation
Twilio Java Helper Library
/**
* This code was generated by
* \ / _ _ _| _ _
* | (_)\/(_)(_|\/| |(/_ v1.0.0
* / /
*/
package com.twilio.rest.studio.v1.flow;
import com.twilio.base.Updater;
import com.twilio.exception.ApiConnectionException;
import com.twilio.exception.ApiException;
import com.twilio.exception.RestException;
import com.twilio.http.HttpMethod;
import com.twilio.http.Request;
import com.twilio.http.Response;
import com.twilio.http.TwilioRestClient;
import com.twilio.rest.Domains;
public class ExecutionUpdater extends Updater {
private final String pathFlowSid;
private final String pathSid;
private final Execution.Status status;
/**
* Construct a new ExecutionUpdater.
*
* @param pathFlowSid The SID of the Flow
* @param pathSid The SID of the Execution resource to update
* @param status The status of the Execution
*/
public ExecutionUpdater(final String pathFlowSid,
final String pathSid,
final Execution.Status status) {
this.pathFlowSid = pathFlowSid;
this.pathSid = pathSid;
this.status = status;
}
/**
* Make the request to the Twilio API to perform the update.
*
* @param client TwilioRestClient with which to make the request
* @return Updated Execution
*/
@Override
@SuppressWarnings("checkstyle:linelength")
public Execution update(final TwilioRestClient client) {
Request request = new Request(
HttpMethod.POST,
Domains.STUDIO.toString(),
"/v1/Flows/" + this.pathFlowSid + "/Executions/" + this.pathSid + ""
);
addPostParams(request);
Response response = client.request(request);
if (response == null) {
throw new ApiConnectionException("Execution update failed: Unable to connect to server");
} else if (!TwilioRestClient.SUCCESS.test(response.getStatusCode())) {
RestException restException = RestException.fromJson(response.getStream(), client.getObjectMapper());
if (restException == null) {
throw new ApiException("Server Error, no content");
}
throw new ApiException(restException);
}
return Execution.fromJson(response.getStream(), client.getObjectMapper());
}
/**
* Add the requested post parameters to the Request.
*
* @param request Request to add post params to
*/
private void addPostParams(final Request request) {
if (status != null) {
request.addPostParam("Status", status.toString());
}
}
}