twilio
Version:
A Twilio helper library
508 lines (507 loc) • 21.9 kB
JavaScript
"use strict";
/*
* This code was generated by
* ___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
* | | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
* | |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
*
* Twilio - Numbers
* This is the public Twilio REST API.
*
* NOTE: This class is auto generated by OpenAPI Generator.
* https://openapi-generator.tech
* Do not edit the class manually.
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ApplicationPage = exports.ApplicationInstance = exports.ApplicationContextImpl = exports.CreateShortCodeApplicationResponseUserSignUp = exports.CreateShortCodeApplicationResponseSmsCampaignDetails = exports.CreateShortCodeApplicationResponseSetup = exports.CreateShortCodeApplicationResponseContentExamples = exports.CreateShortCodeApplicationResponseComplianceKeywords = exports.CreateShortCodeApplicationResponseBusinessInformation = exports.CreateShortCodeApplicationRequestSetup = exports.CreateShortCodeApplicationRequestBusinessInformation = exports.CreateShortCodeApplicationRequest = void 0;
exports.ApplicationListInstance = ApplicationListInstance;
const util_1 = require("util");
const Page_1 = __importDefault(require("../../../base/Page"));
const deserialize = require("../../../base/deserialize");
const serialize = require("../../../base/serialize");
const utility_1 = require("../../../base/utility");
class CreateShortCodeApplicationRequest {
constructor(payload) {
this.friendlyName = payload["friendly_name"];
this.isoCountry = payload["iso_country"];
this.businessInformation = payload["business_information"];
this.setup = payload["setup"];
}
}
exports.CreateShortCodeApplicationRequest = CreateShortCodeApplicationRequest;
/**
* Business information associated with the application.
*/
class CreateShortCodeApplicationRequestBusinessInformation {
constructor(payload) {
this.customerFacingProfile = payload["customer_facing_profile"];
}
}
exports.CreateShortCodeApplicationRequestBusinessInformation = CreateShortCodeApplicationRequestBusinessInformation;
class CreateShortCodeApplicationRequestSetup {
constructor(payload) {
this.chargesApply = payload["charges_apply"];
}
}
exports.CreateShortCodeApplicationRequestSetup = CreateShortCodeApplicationRequestSetup;
/**
* Business information associated with the application.
*/
class CreateShortCodeApplicationResponseBusinessInformation {
constructor(payload) {
this.managingCompanyProfile = payload["managing_company_profile"];
this.customerFacingProfile = payload["customer_facing_profile"];
this.businessWebsite = payload["business_website"];
this.einManagingCompanyProfile = payload["ein_managing_company_profile"];
this.einCustomerFacingProfile = payload["ein_customer_facing_profile"];
}
}
exports.CreateShortCodeApplicationResponseBusinessInformation = CreateShortCodeApplicationResponseBusinessInformation;
/**
* Compliance keywords for the application.
*/
class CreateShortCodeApplicationResponseComplianceKeywords {
constructor(payload) {
this.help = payload["help"];
this.stop = payload["stop"];
this.info = payload["info"];
this.aide = payload["aide"];
this.arret = payload["arret"];
this.optOutFiltering = payload["opt_out_filtering"];
}
}
exports.CreateShortCodeApplicationResponseComplianceKeywords = CreateShortCodeApplicationResponseComplianceKeywords;
/**
* Content examples for the application.
*/
class CreateShortCodeApplicationResponseContentExamples {
constructor(payload) {
this.examples = payload["examples"];
}
}
exports.CreateShortCodeApplicationResponseContentExamples = CreateShortCodeApplicationResponseContentExamples;
/**
* Setup configuration for the application.
*/
class CreateShortCodeApplicationResponseSetup {
constructor(payload) {
this.requestType = payload["request_type"];
this.trafficType = payload["traffic_type"];
this.leaseType = payload["lease_type"];
this.paymentFrequency = payload["payment_frequency"];
this.shortCodePreference = payload["short_code_preference"];
this.mmsEnabled = payload["mms_enabled"];
this.freeToEndUser = payload["free_to_end_user"];
this.chargesApply = payload["charges_apply"];
this.currentProvider = payload["current_provider"];
this.migratedMmsEnabled = payload["migrated_mms_enabled"];
this.migratedLiveTraffic = payload["migrated_live_traffic"];
}
}
exports.CreateShortCodeApplicationResponseSetup = CreateShortCodeApplicationResponseSetup;
/**
* SMS campaign details for the application.
*/
class CreateShortCodeApplicationResponseSmsCampaignDetails {
constructor(payload) {
this.campaignName = payload["campaign_name"];
this.campaignBrandWebsite = payload["campaign_brand_website"];
this.customerCareChannel = payload["customer_care_channel"];
this.customerCareValue = payload["customer_care_value"];
this.campaignFrequency = payload["campaign_frequency"];
this.scUseCaseCategories = payload["sc_use_case_categories"];
this.smsTermsOfServiceUrl = payload["sms_terms_of_service_url"];
this.smsPrivacyPolicyUrl = payload["sms_privacy_policy_url"];
this.monthlyOutboundVolumeExpected =
payload["monthly_outbound_volume_expected"];
this.monthlyInboundVolumeExpected =
payload["monthly_inbound_volume_expected"];
this.avgMonthlyMessagesSentToEachSubscriber =
payload["avg_monthly_messages_sent_to_each_subscriber"];
this.avgMonthlyMessagesReceivedFromSubscribers =
payload["avg_monthly_messages_received_from_subscribers"];
this.estimatedTotalSubscribers = payload["estimated_total_subscribers"];
this.durationOfTheCampaign = payload["duration_of_the_campaign"];
this.plannedTrafficSpikes = payload["planned_traffic_spikes"];
this.spikeDetails = payload["spike_details"];
this.expectedTrafficStartDate = payload["expected_traffic_start_date"];
}
}
exports.CreateShortCodeApplicationResponseSmsCampaignDetails = CreateShortCodeApplicationResponseSmsCampaignDetails;
/**
* User sign-up configuration for the application.
*/
class CreateShortCodeApplicationResponseUserSignUp {
constructor(payload) {
this.signUpOptions = payload["sign_up_options"];
this.doubleOptInProcess = payload["double_opt_in_process"];
this.doubleOptInMessage = payload["double_opt_in_message"];
this.signUpConfirmationMessage = payload["sign_up_confirmation_message"];
this.doubleOptInResponseMessage = payload["double_opt_in_response_message"];
this.onlineWebFormMessage = payload["online_web_form_message"];
this.keywordMessage = payload["keyword_message"];
this.ivrMessage = payload["ivr_message"];
this.otherFormMessage = payload["other_form_message"];
}
}
exports.CreateShortCodeApplicationResponseUserSignUp = CreateShortCodeApplicationResponseUserSignUp;
class ApplicationContextImpl {
constructor(_version, sid) {
this._version = _version;
if (!(0, utility_1.isValidPathParam)(sid)) {
throw new Error("Parameter 'sid' is not valid.");
}
this._solution = { sid };
this._uri = `/ShortCodes/Applications/${sid}`;
}
fetch(callback) {
const headers = {};
headers["Accept"] = "application/json";
const instance = this;
let operationVersion = instance._version, operationPromise = operationVersion.fetch({
uri: instance._uri,
method: "get",
headers,
});
operationPromise = operationPromise.then((payload) => new ApplicationInstance(operationVersion, payload, instance._solution.sid));
operationPromise = instance._version.setPromiseCallback(operationPromise, callback);
return operationPromise;
}
fetchWithHttpInfo(callback) {
const headers = {};
headers["Accept"] = "application/json";
const instance = this;
let operationVersion = instance._version;
// CREATE, FETCH, UPDATE operations
let operationPromise = operationVersion
.fetchWithResponseInfo({
uri: instance._uri,
method: "get",
headers,
})
.then((response) => ({
...response,
body: new ApplicationInstance(operationVersion, response.body, instance._solution.sid),
}));
operationPromise = instance._version.setPromiseCallback(operationPromise, callback);
return operationPromise;
}
/**
* Provide a user-friendly representation
*
* @returns Object
*/
toJSON() {
return this._solution;
}
[util_1.inspect.custom](_depth, options) {
return (0, util_1.inspect)(this.toJSON(), options);
}
}
exports.ApplicationContextImpl = ApplicationContextImpl;
class ApplicationInstance {
constructor(_version, payload, sid) {
this._version = _version;
this.sid = payload.sid;
this.applicationRequirementsSid = payload.application_requirements_sid;
this.applicationRequirementsVersion = deserialize.integer(payload.application_requirements_version);
this.accountSid = payload.account_sid;
this.bundleSid = payload.bundle_sid;
this.reviewer = payload.reviewer;
this.zendeskTicketId = payload.zendesk_ticket_id;
this.friendlyName = payload.friendly_name;
this.notificationEmails = payload.notification_emails;
this.isoCountry = payload.iso_country;
this.state = payload.state;
this.setup =
payload.setup !== null && payload.setup !== undefined
? new CreateShortCodeApplicationResponseSetup(payload.setup)
: null;
this.businessInformation =
payload.business_information !== null &&
payload.business_information !== undefined
? new CreateShortCodeApplicationResponseBusinessInformation(payload.business_information)
: null;
this.userSignUp =
payload.user_sign_up !== null && payload.user_sign_up !== undefined
? new CreateShortCodeApplicationResponseUserSignUp(payload.user_sign_up)
: null;
this.complianceKeywords =
payload.compliance_keywords !== null &&
payload.compliance_keywords !== undefined
? new CreateShortCodeApplicationResponseComplianceKeywords(payload.compliance_keywords)
: null;
this.contentExamples =
payload.content_examples !== null &&
payload.content_examples !== undefined
? new CreateShortCodeApplicationResponseContentExamples(payload.content_examples)
: null;
this.smsCampaignDetails =
payload.sms_campaign_details !== null &&
payload.sms_campaign_details !== undefined
? new CreateShortCodeApplicationResponseSmsCampaignDetails(payload.sms_campaign_details)
: null;
this.dateCreated = deserialize.iso8601DateTime(payload.date_created);
this.dateUpdated = deserialize.iso8601DateTime(payload.date_updated);
this.createdBy = payload.created_by;
this.updatedBy = payload.updated_by;
this._solution = { sid: sid || this.sid };
}
get _proxy() {
this._context =
this._context ||
new ApplicationContextImpl(this._version, this._solution.sid);
return this._context;
}
/**
* Fetch a ApplicationInstance
*
* @param callback - Callback to handle processed record
*
* @returns Resolves to processed ApplicationInstance
*/
fetch(callback) {
return this._proxy.fetch(callback);
}
/**
* Fetch a ApplicationInstance and return HTTP info
*
* @param callback - Callback to handle processed record
*
* @returns Resolves to processed ApplicationInstance with HTTP metadata
*/
fetchWithHttpInfo(callback) {
return this._proxy.fetchWithHttpInfo(callback);
}
/**
* Provide a user-friendly representation
*
* @returns Object
*/
toJSON() {
return {
sid: this.sid,
applicationRequirementsSid: this.applicationRequirementsSid,
applicationRequirementsVersion: this.applicationRequirementsVersion,
accountSid: this.accountSid,
bundleSid: this.bundleSid,
reviewer: this.reviewer,
zendeskTicketId: this.zendeskTicketId,
friendlyName: this.friendlyName,
notificationEmails: this.notificationEmails,
isoCountry: this.isoCountry,
state: this.state,
setup: this.setup,
businessInformation: this.businessInformation,
userSignUp: this.userSignUp,
complianceKeywords: this.complianceKeywords,
contentExamples: this.contentExamples,
smsCampaignDetails: this.smsCampaignDetails,
dateCreated: this.dateCreated,
dateUpdated: this.dateUpdated,
createdBy: this.createdBy,
updatedBy: this.updatedBy,
};
}
[util_1.inspect.custom](_depth, options) {
return (0, util_1.inspect)(this.toJSON(), options);
}
}
exports.ApplicationInstance = ApplicationInstance;
function ApplicationListInstance(version) {
const instance = ((sid) => instance.get(sid));
instance.get = function get(sid) {
return new ApplicationContextImpl(version, sid);
};
instance._version = version;
instance._solution = {};
instance._uri = `/ShortCodes/Applications`;
instance.create = function create(params, headers, callback) {
if (params === null || params === undefined) {
throw new Error('Required parameter "params" missing.');
}
let data = {};
data = params;
if (headers === null || headers === undefined) {
headers = {};
}
headers["Content-Type"] = "application/json";
headers["Accept"] = "application/json";
let operationVersion = version, operationPromise = operationVersion.create({
uri: instance._uri,
method: "post",
data,
headers,
});
operationPromise = operationPromise.then((payload) => new ApplicationInstance(operationVersion, payload));
operationPromise = instance._version.setPromiseCallback(operationPromise, callback);
return operationPromise;
};
instance.createWithHttpInfo = function createWithHttpInfo(params, headers, callback) {
if (params === null || params === undefined) {
throw new Error('Required parameter "params" missing.');
}
let data = {};
data = params;
if (headers === null || headers === undefined) {
headers = {};
}
headers["Content-Type"] = "application/json";
headers["Accept"] = "application/json";
let operationVersion = version;
// CREATE, FETCH, UPDATE operations
let operationPromise = operationVersion
.createWithResponseInfo({
uri: instance._uri,
method: "post",
data,
headers,
})
.then((response) => ({
...response,
body: new ApplicationInstance(operationVersion, response.body),
}));
operationPromise = instance._version.setPromiseCallback(operationPromise, callback);
return operationPromise;
};
instance.page = function page(params, callback) {
if (params instanceof Function) {
callback = params;
params = {};
}
else {
params = params || {};
}
let data = {};
if (params["accountSid"] !== undefined)
data["AccountSid"] = params["accountSid"];
if (params["isoCountry"] !== undefined)
data["IsoCountry"] = params["isoCountry"];
if (params["status"] !== undefined)
data["Status"] = params["status"];
if (params["friendlyName"] !== undefined)
data["FriendlyName"] = params["friendlyName"];
if (params["sid"] !== undefined)
data["Sid"] = params["sid"];
if (params["pageSize"] !== undefined)
data["PageSize"] = params["pageSize"];
if (params.pageNumber !== undefined)
data["Page"] = params.pageNumber;
if (params.pageToken !== undefined)
data["PageToken"] = params.pageToken;
const headers = {};
headers["Accept"] = "application/json";
let operationVersion = version, operationPromise = operationVersion.page({
uri: instance._uri,
method: "get",
params: data,
headers,
});
operationPromise = operationPromise.then((payload) => new ApplicationPage(operationVersion, payload, instance._solution));
operationPromise = instance._version.setPromiseCallback(operationPromise, callback);
return operationPromise;
};
instance.each = instance._version.each;
instance.list = instance._version.list;
instance.getPage = function getPage(targetUrl, callback) {
const operationPromise = instance._version._domain.twilio.request({
method: "get",
uri: targetUrl,
});
let pagePromise = operationPromise.then((payload) => new ApplicationPage(instance._version, payload, instance._solution));
pagePromise = instance._version.setPromiseCallback(pagePromise, callback);
return pagePromise;
};
instance.pageWithHttpInfo = function pageWithHttpInfo(params, callback) {
if (params instanceof Function) {
callback = params;
params = {};
}
else {
params = params || {};
}
let data = {};
if (params["accountSid"] !== undefined)
data["AccountSid"] = params["accountSid"];
if (params["isoCountry"] !== undefined)
data["IsoCountry"] = params["isoCountry"];
if (params["status"] !== undefined)
data["Status"] = params["status"];
if (params["friendlyName"] !== undefined)
data["FriendlyName"] = params["friendlyName"];
if (params["sid"] !== undefined)
data["Sid"] = params["sid"];
if (params["pageSize"] !== undefined)
data["PageSize"] = params["pageSize"];
if (params.pageNumber !== undefined)
data["Page"] = params.pageNumber;
if (params.pageToken !== undefined)
data["PageToken"] = params.pageToken;
const headers = {};
headers["Accept"] = "application/json";
let operationVersion = version;
// For page operations, use page() directly as it already returns { statusCode, body, headers }
// IMPORTANT: Pass full response to Page constructor, not response.body
let operationPromise = operationVersion
.page({ uri: instance._uri, method: "get", params: data, headers })
.then((response) => ({
statusCode: response.statusCode,
headers: response.headers,
body: new ApplicationPage(operationVersion, response, instance._solution),
}));
operationPromise = instance._version.setPromiseCallback(operationPromise, callback);
return operationPromise;
};
instance.each = instance._version.each;
instance.eachWithHttpInfo = instance._version.eachWithHttpInfo;
instance.list = instance._version.list;
instance.listWithHttpInfo = instance._version.listWithHttpInfo;
instance.getPageWithHttpInfo = function getPageWithHttpInfo(targetUrl, callback) {
// Use request() directly as it already returns { statusCode, body, headers }
const operationPromise = instance._version._domain.twilio.request({
method: "get",
uri: targetUrl,
});
let pagePromise = operationPromise.then((response) => ({
statusCode: response.statusCode,
headers: response.headers,
body: new ApplicationPage(instance._version, response, instance._solution),
}));
pagePromise = instance._version.setPromiseCallback(pagePromise, callback);
return pagePromise;
};
instance.toJSON = function toJSON() {
return instance._solution;
};
instance[util_1.inspect.custom] = function inspectImpl(_depth, options) {
return (0, util_1.inspect)(instance.toJSON(), options);
};
return instance;
}
class ApplicationPage extends Page_1.default {
/**
* Initialize the ApplicationPage
*
* @param version - Version of the resource
* @param response - Response from the API
* @param solution - Path solution
*/
constructor(version, response, solution) {
super(version, response, solution);
}
/**
* Build an instance of ApplicationInstance
*
* @param payload - Payload response from the API
*/
getInstance(payload) {
return new ApplicationInstance(this._version, payload);
}
[util_1.inspect.custom](depth, options) {
return (0, util_1.inspect)(this.toJSON(), options);
}
}
exports.ApplicationPage = ApplicationPage;