com.twilio.rest.taskrouter.v1.workspace.TaskUpdater 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.taskrouter.v1.workspace;
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 TaskUpdater extends Updater {
private final String pathWorkspaceSid;
private final String pathSid;
private String attributes;
private Task.Status assignmentStatus;
private String reason;
private Integer priority;
private String taskChannel;
/**
* Construct a new TaskUpdater.
*
* @param pathWorkspaceSid The workspace_sid
* @param pathSid The sid
*/
public TaskUpdater(final String pathWorkspaceSid,
final String pathSid) {
this.pathWorkspaceSid = pathWorkspaceSid;
this.pathSid = pathSid;
}
/**
* The attributes.
*
* @param attributes The attributes
* @return this
*/
public TaskUpdater setAttributes(final String attributes) {
this.attributes = attributes;
return this;
}
/**
* The assignment_status.
*
* @param assignmentStatus The assignment_status
* @return this
*/
public TaskUpdater setAssignmentStatus(final Task.Status assignmentStatus) {
this.assignmentStatus = assignmentStatus;
return this;
}
/**
* The reason.
*
* @param reason The reason
* @return this
*/
public TaskUpdater setReason(final String reason) {
this.reason = reason;
return this;
}
/**
* The priority.
*
* @param priority The priority
* @return this
*/
public TaskUpdater setPriority(final Integer priority) {
this.priority = priority;
return this;
}
/**
* The task_channel.
*
* @param taskChannel The task_channel
* @return this
*/
public TaskUpdater setTaskChannel(final String taskChannel) {
this.taskChannel = taskChannel;
return this;
}
/**
* Make the request to the Twilio API to perform the update.
*
* @param client TwilioRestClient with which to make the request
* @return Updated Task
*/
@Override
@SuppressWarnings("checkstyle:linelength")
public Task update(final TwilioRestClient client) {
Request request = new Request(
HttpMethod.POST,
Domains.TASKROUTER.toString(),
"/v1/Workspaces/" + this.pathWorkspaceSid + "/Tasks/" + this.pathSid + "",
client.getRegion()
);
addPostParams(request);
Response response = client.request(request);
if (response == null) {
throw new ApiConnectionException("Task update failed: Unable to connect to server");
} else if (!TwilioRestClient.SUCCESS.apply(response.getStatusCode())) {
RestException restException = RestException.fromJson(response.getStream(), client.getObjectMapper());
if (restException == null) {
throw new ApiException("Server Error, no content");
}
throw new ApiException(
restException.getMessage(),
restException.getCode(),
restException.getMoreInfo(),
restException.getStatus(),
null
);
}
return Task.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 (attributes != null) {
request.addPostParam("Attributes", attributes);
}
if (assignmentStatus != null) {
request.addPostParam("AssignmentStatus", assignmentStatus.toString());
}
if (reason != null) {
request.addPostParam("Reason", reason);
}
if (priority != null) {
request.addPostParam("Priority", priority.toString());
}
if (taskChannel != null) {
request.addPostParam("TaskChannel", taskChannel);
}
}
}