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.
		
		
		
		
		
			
		
			
				
					36 lines
				
				1.2 KiB
			
		
		
			
		
	
	
					36 lines
				
				1.2 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 @module resources/ListInstanceResource
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 Most Twilio REST resources follow a "List/Instance" model, where there is a single resource
							 | 
						||
| 
								 | 
							
								 like:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 /Accounts/{SID}/Calls
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 which can be POSTed to or GETed to create a new instance, or query existing resources, etc.
							 | 
						||
| 
								 | 
							
								 Simlarly, these resources also have an "instance", which looks like:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 /Accounts/{SID}/Calls/{some unique identifier}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 Which can get GETed or maybe POSTed.  For these relative simple/similar resources, this module
							 | 
						||
| 
								 | 
							
								 will generate a consistent REST interface for whatever methods the resource supports
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								var generate = require('./generate');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = function (client, accountSid, resourceName, instanceMethods, listMethods) {
							 | 
						||
| 
								 | 
							
								    var baseResourceUrl = '/Accounts/' + accountSid + '/' + resourceName;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function Resource(instanceId) {
							 | 
						||
| 
								 | 
							
								        var resourceApi = {};
							 | 
						||
| 
								 | 
							
								        generate.restFunctions(resourceApi, client, instanceMethods, '/Accounts/' + accountSid + '/' + resourceName + '/' + instanceId);
							 | 
						||
| 
								 | 
							
								        return resourceApi;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    //generate rest functions for base resource
							 | 
						||
| 
								 | 
							
								    generate.restFunctions(Resource, client, listMethods, baseResourceUrl);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    //expose base url
							 | 
						||
| 
								 | 
							
								    Resource.baseResourceUrl = baseResourceUrl;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return Resource;
							 | 
						||
| 
								 | 
							
								};
							 |