You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					67 lines
				
				2.3 KiB
			
		
		
			
		
	
	
					67 lines
				
				2.3 KiB
			| 
											3 years ago
										 | /** | ||
|  |  @module RestClient | ||
|  | 
 | ||
|  |  This module presents a higher-level API for interacting with resources | ||
|  |  in the Twilio REST API.  Tries to map very closely to the resource structure | ||
|  |  of the actual Twilio API, while still providing a nice JavaScript interface. | ||
|  |  */ | ||
|  | 
 | ||
|  | //Dependencies
 | ||
|  | var _ = require('underscore'); | ||
|  | var Client = require('./Client'); | ||
|  | var util = require('util'); | ||
|  | 
 | ||
|  | /** | ||
|  |  The Twilio REST API client | ||
|  |  @constructor | ||
|  |  @param {string} sid - The application SID, as seen in the Twilio portal | ||
|  |  @param {string} tkn - The auth token, as seen in the Twilio portal | ||
|  |  @param {object} options (optional) - optional config for the REST client | ||
|  |  - @member {string} host - host for the Twilio API (default: api.twilio.com) | ||
|  |  - @member {string} apiVersion - the Twilio REST API version to use for requests (default: 2010-04-01) | ||
|  |  */ | ||
|  | function RestClient(sid, tkn, options) { | ||
|  |     options = options || {}; | ||
|  |     RestClient.super_.call(this, sid, tkn, options.host, options.apiVersion, options.timeout); | ||
|  | 
 | ||
|  |     //REST Resource - shorthand for just "account" and "accounts" to match the REST API
 | ||
|  |     var accountResource = require('./resources/Accounts')(this); | ||
|  |     this.accounts = accountResource; | ||
|  | 
 | ||
|  |     //mix the account object in with the client object - assume master account for resources
 | ||
|  |     _.extend(this,accountResource); | ||
|  | 
 | ||
|  |     //Messaging shorthand
 | ||
|  |     this.sendSms = this.accounts.sms.messages.post; | ||
|  |     this.sendMms = this.accounts.messages.post; | ||
|  |     this.sendMessage = this.accounts.messages.post; | ||
|  |     this.listSms = this.accounts.sms.messages.get; | ||
|  |     this.listMessages = this.accounts.messages.get; | ||
|  |     this.getSms = function(messageSid, callback) { | ||
|  |         this.accounts.sms.messages(messageSid).get(callback); | ||
|  |     }; | ||
|  |     this.getMessage = function(messageSid, callback) { | ||
|  |         this.accounts.messages(messageSid).get(callback); | ||
|  |     }; | ||
|  | 
 | ||
|  | 
 | ||
|  |     //Calls shorthand
 | ||
|  |     this.makeCall = this.accounts.calls.post; | ||
|  |     this.listCalls = this.accounts.calls.get; | ||
|  |     this.getCall = function(callSid, callback) { | ||
|  |         this.accounts.calls(callSid).get(callback); | ||
|  |     }; | ||
|  | } | ||
|  | 
 | ||
|  | util.inherits(RestClient, Client); | ||
|  | 
 | ||
|  | RestClient.prototype.request = function(options, callback) { | ||
|  |     var client = this; | ||
|  | 
 | ||
|  |     // Force .json for Coke Classic API
 | ||
|  |     options.url = options.url + '.json'; | ||
|  |     return RestClient.super_.prototype.request.call(this, options, callback); | ||
|  | }; | ||
|  | 
 | ||
|  | module.exports = RestClient; |