twiliojs-api
Version:
Module to invoke twilio.com services
43 lines (35 loc) • 1.43 kB
JavaScript
/*
* Module's dependencies
*/
var Util = require("./lib/util.js");
/**
* Twilio class
* Handles invocations to Twilios's methods.
* @param settings {object} required
* Twilio uses two accountSids to determine which account an API request is coming from. The “Account SID”, which acts as a accountToken, and the “Auth Token” which acts as a password.
* - accountSid: {string} Account SID
* - accountToken: {string} Auth Token
* @returns {Twilio}
* @api public
*/
var Twilio = function(config) {
//sets default values
config.apiEndpoint = config.apiEndpoint || "https://api.twilio.com/2010-04-01";
// validations
if (!config.accountSid || typeof config.accountSid !== 'string') throw new Error("'config.accountSid' property is missing or invalid.");
if (!config.accountToken || typeof config.accountToken !== 'string') throw new Error("'config.accountToken' property is missing or invalid.");
config.apiEndpoint += "/Accounts/";
config.apiEndpoint += config.accountSid;
// keeps a reference to the configuration.
var globalConfig = config;
Object.defineProperty(this, "config", {
enumerable: false,
configurable: false,
writable: false,
value: globalConfig
});
// Adds public methods to the instance
var util = new Util(config);
util.hook(this,require("./lib/methods"));
}
module.exports = Twilio;