com.twilio.rest.verify.v2.ServiceCreator 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.verify.v2;
import com.twilio.base.Creator;
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 ServiceCreator extends Creator {
private final String friendlyName;
private Integer codeLength;
private Boolean lookupEnabled;
private Boolean skipSmsToLandlines;
private Boolean dtmfInputRequired;
private String ttsName;
private Boolean psd2Enabled;
/**
* Construct a new ServiceCreator.
*
* @param friendlyName A string to describe the verification service
*/
public ServiceCreator(final String friendlyName) {
this.friendlyName = friendlyName;
}
/**
* The length of the verification code to generate. Must be an integer value
* between 4 and 10, inclusive..
*
* @param codeLength The length of the verification code to generate
* @return this
*/
public ServiceCreator setCodeLength(final Integer codeLength) {
this.codeLength = codeLength;
return this;
}
/**
* Whether to perform a lookup with each verification started and return info
* about the phone number..
*
* @param lookupEnabled Whether to perform a lookup with each verification
* @return this
*/
public ServiceCreator setLookupEnabled(final Boolean lookupEnabled) {
this.lookupEnabled = lookupEnabled;
return this;
}
/**
* Whether to skip sending SMS verifications to landlines. Requires
* `lookup_enabled`..
*
* @param skipSmsToLandlines Whether to skip sending SMS verifications to
* landlines
* @return this
*/
public ServiceCreator setSkipSmsToLandlines(final Boolean skipSmsToLandlines) {
this.skipSmsToLandlines = skipSmsToLandlines;
return this;
}
/**
* Whether to ask the user to press a number before delivering the verify code
* in a phone call..
*
* @param dtmfInputRequired Whether to ask the user to press a number before
* delivering the verify code in a phone call
* @return this
*/
public ServiceCreator setDtmfInputRequired(final Boolean dtmfInputRequired) {
this.dtmfInputRequired = dtmfInputRequired;
return this;
}
/**
* The name of an alternative text-to-speech service to use in phone calls.
* Applies only to TTS languages..
*
* @param ttsName The name of an alternative text-to-speech service to use in
* phone calls
* @return this
*/
public ServiceCreator setTtsName(final String ttsName) {
this.ttsName = ttsName;
return this;
}
/**
* Whether to pass PSD2 transaction parameters when starting a verification..
*
* @param psd2Enabled Whether to pass PSD2 transaction parameters when starting
* a verification
* @return this
*/
public ServiceCreator setPsd2Enabled(final Boolean psd2Enabled) {
this.psd2Enabled = psd2Enabled;
return this;
}
/**
* Make the request to the Twilio API to perform the create.
*
* @param client TwilioRestClient with which to make the request
* @return Created Service
*/
@Override
@SuppressWarnings("checkstyle:linelength")
public Service create(final TwilioRestClient client) {
Request request = new Request(
HttpMethod.POST,
Domains.VERIFY.toString(),
"/v2/Services",
client.getRegion()
);
addPostParams(request);
Response response = client.request(request);
if (response == null) {
throw new ApiConnectionException("Service creation 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 Service.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 (friendlyName != null) {
request.addPostParam("FriendlyName", friendlyName);
}
if (codeLength != null) {
request.addPostParam("CodeLength", codeLength.toString());
}
if (lookupEnabled != null) {
request.addPostParam("LookupEnabled", lookupEnabled.toString());
}
if (skipSmsToLandlines != null) {
request.addPostParam("SkipSmsToLandlines", skipSmsToLandlines.toString());
}
if (dtmfInputRequired != null) {
request.addPostParam("DtmfInputRequired", dtmfInputRequired.toString());
}
if (ttsName != null) {
request.addPostParam("TtsName", ttsName);
}
if (psd2Enabled != null) {
request.addPostParam("Psd2Enabled", psd2Enabled.toString());
}
}
}