UNPKG

twilio

Version:
257 lines (227 loc) 7.37 kB
'use strict'; /* jshint ignore:start */ /** * This code was generated by * \ / _ _ _| _ _ * | (_)\/(_)(_|\/| |(/_ v1.0.0 * / / */ /* jshint ignore:end */ var Q = require('q'); /* jshint ignore:line */ var _ = require('lodash'); /* jshint ignore:line */ var Page = require('../../../base/Page'); /* jshint ignore:line */ var serialize = require('../../../base/serialize'); /* jshint ignore:line */ var values = require('../../../base/values'); /* jshint ignore:line */ var PhoneNumberList; var PhoneNumberPage; var PhoneNumberInstance; var PhoneNumberContext; /* jshint ignore:start */ /** * @constructor Twilio.Lookups.V1.PhoneNumberList * @description Initialize the PhoneNumberList * * @param {Twilio.Lookups.V1} version - Version of the resource */ /* jshint ignore:end */ PhoneNumberList = function PhoneNumberList(version) { /* jshint ignore:start */ /** * @function phoneNumbers * @memberof Twilio.Lookups.V1 * @instance * * @param {string} sid - sid of instance * * @returns {Twilio.Lookups.V1.PhoneNumberContext} */ /* jshint ignore:end */ function PhoneNumberListInstance(sid) { return PhoneNumberListInstance.get(sid); } PhoneNumberListInstance._version = version; // Path Solution PhoneNumberListInstance._solution = {}; /* jshint ignore:start */ /** * Constructs a phone_number * * @function get * @memberof Twilio.Lookups.V1.PhoneNumberList * @instance * * @param {string} phoneNumber - The phone_number * * @returns {Twilio.Lookups.V1.PhoneNumberContext} */ /* jshint ignore:end */ PhoneNumberListInstance.get = function get(phoneNumber) { return new PhoneNumberContext(this._version, phoneNumber); }; return PhoneNumberListInstance; }; /* jshint ignore:start */ /** * @constructor Twilio.Lookups.V1.PhoneNumberPage * @augments Page * @description Initialize the PhoneNumberPage * * @param {Twilio.Lookups.V1} version - Version of the resource * @param {object} response - Response from the API * @param {object} solution - Path solution * * @returns PhoneNumberPage */ /* jshint ignore:end */ PhoneNumberPage = function PhoneNumberPage(version, response, solution) { // Path Solution this._solution = solution; Page.prototype.constructor.call(this, version, response, this._solution); }; _.extend(PhoneNumberPage.prototype, Page.prototype); PhoneNumberPage.prototype.constructor = PhoneNumberPage; /* jshint ignore:start */ /** * Build an instance of PhoneNumberInstance * * @function getInstance * @memberof Twilio.Lookups.V1.PhoneNumberPage * @instance * * @param {object} payload - Payload response from the API * * @returns PhoneNumberInstance */ /* jshint ignore:end */ PhoneNumberPage.prototype.getInstance = function getInstance(payload) { return new PhoneNumberInstance(this._version, payload); }; /* jshint ignore:start */ /** * @constructor Twilio.Lookups.V1.PhoneNumberInstance * @description Initialize the PhoneNumberContext * * @property {string} callerName - The caller_name * @property {string} countryCode - The country_code * @property {string} phoneNumber - The phone_number * @property {string} nationalFormat - The national_format * @property {string} carrier - The carrier * @property {string} addOns - The add_ons * @property {string} url - The url * * @param {Twilio.Lookups.V1} version - Version of the resource * @param {object} payload - The instance payload * @param {phone_number} phoneNumber - The phone_number */ /* jshint ignore:end */ PhoneNumberInstance = function PhoneNumberInstance(version, payload, phoneNumber) { this._version = version; // Marshaled Properties this.callerName = payload.caller_name; // jshint ignore:line this.countryCode = payload.country_code; // jshint ignore:line this.phoneNumber = payload.phone_number; // jshint ignore:line this.nationalFormat = payload.national_format; // jshint ignore:line this.carrier = payload.carrier; // jshint ignore:line this.addOns = payload.add_ons; // jshint ignore:line this.url = payload.url; // jshint ignore:line // Context this._context = undefined; this._solution = {phoneNumber: phoneNumber || this.phoneNumber,}; }; Object.defineProperty(PhoneNumberInstance.prototype, '_proxy', { get: function() { if (!this._context) { this._context = new PhoneNumberContext(this._version, this._solution.phoneNumber); } return this._context; } }); /* jshint ignore:start */ /** * fetch a PhoneNumberInstance * * @function fetch * @memberof Twilio.Lookups.V1.PhoneNumberInstance * @instance * * @param {object|function} opts - ... * @param {string} [opts.countryCode] - The country_code * @param {string|list} [opts.type] - The type * @param {string|list} [opts.addOns] - The add_ons * @param {object} [opts.addOnsData] - The add_ons_data * @param {function} [callback] - Callback to handle processed record * * @returns {Promise} Resolves to processed PhoneNumberInstance */ /* jshint ignore:end */ PhoneNumberInstance.prototype.fetch = function fetch(opts, callback) { return this._proxy.fetch(opts, callback); }; /* jshint ignore:start */ /** * @constructor Twilio.Lookups.V1.PhoneNumberContext * @description Initialize the PhoneNumberContext * * @param {Twilio.Lookups.V1} version - Version of the resource * @param {phone_number} phoneNumber - The phone_number */ /* jshint ignore:end */ PhoneNumberContext = function PhoneNumberContext(version, phoneNumber) { this._version = version; // Path Solution this._solution = {phoneNumber: phoneNumber,}; this._uri = _.template( '/PhoneNumbers/<%= phoneNumber %>' // jshint ignore:line )(this._solution); }; /* jshint ignore:start */ /** * fetch a PhoneNumberInstance * * @function fetch * @memberof Twilio.Lookups.V1.PhoneNumberContext * @instance * * @param {object|function} opts - ... * @param {string} [opts.countryCode] - The country_code * @param {string|list} [opts.type] - The type * @param {string|list} [opts.addOns] - The add_ons * @param {object} [opts.addOnsData] - The add_ons_data * @param {function} [callback] - Callback to handle processed record * * @returns {Promise} Resolves to processed PhoneNumberInstance */ /* jshint ignore:end */ PhoneNumberContext.prototype.fetch = function fetch(opts, callback) { if (_.isFunction(opts)) { callback = opts; opts = {}; } opts = opts || {}; var deferred = Q.defer(); var data = values.of({ 'CountryCode': _.get(opts, 'countryCode'), 'Type': _.get(opts, 'type'), 'AddOns': _.get(opts, 'addOns') }); _.extend(data, serialize.prefixedCollapsibleMap(opts.addOnsData, 'AddOns')); var promise = this._version.fetch({uri: this._uri, method: 'GET', params: data}); promise = promise.then(function(payload) { deferred.resolve(new PhoneNumberInstance(this._version, payload, this._solution.phoneNumber)); }.bind(this)); promise.catch(function(error) { deferred.reject(error); }); if (_.isFunction(callback)) { deferred.promise.nodeify(callback); } return deferred.promise; }; module.exports = { PhoneNumberList: PhoneNumberList, PhoneNumberPage: PhoneNumberPage, PhoneNumberInstance: PhoneNumberInstance, PhoneNumberContext: PhoneNumberContext };