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.
		
		
		
		
		
			
		
			
				
					220 lines
				
				9.1 KiB
			
		
		
			
		
	
	
					220 lines
				
				9.1 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 @module resources/task_router/Workspaces
							 | 
						||
| 
								 | 
							
								 The Twilio TaskRouter "Workspaces" Resource.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								var generate = require('../generate');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = function (client) {
							 | 
						||
| 
								 | 
							
								    var baseResourceUrl = '/Workspaces';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    //Instance requests
							 | 
						||
| 
								 | 
							
								    function Workspaces(sid) {
							 | 
						||
| 
								 | 
							
								        var resourceApi = {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //Add standard instance resource functions
							 | 
						||
| 
								 | 
							
								        generate.restFunctions(resourceApi, client, ['DELETE', 'GET', 'POST', {update: 'POST'}], baseResourceUrl + '/' + sid);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //Add activities sub-resource
							 | 
						||
| 
								 | 
							
								        resourceApi.activities = function(activitySid) {
							 | 
						||
| 
								 | 
							
								            var activityResourceApi = {
							 | 
						||
| 
								 | 
							
								                get: generate(client, 'GET', baseResourceUrl + '/' + sid + '/Activities/' + activitySid),
							 | 
						||
| 
								 | 
							
								                post: generate(client, 'POST', baseResourceUrl + '/' + sid + '/Activities/' + activitySid),
							 | 
						||
| 
								 | 
							
								                delete: generate(client, 'DELETE', baseResourceUrl + '/' + sid + '/Activities/' + activitySid)
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            //Aliases
							 | 
						||
| 
								 | 
							
								            activityResourceApi.update = activityResourceApi.post;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            return activityResourceApi;
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        resourceApi.activities.get = generate(client, 'GET', baseResourceUrl + '/' + sid + '/Activities');
							 | 
						||
| 
								 | 
							
								        resourceApi.activities.post = generate(client, 'POST', baseResourceUrl + '/' + sid + '/Activities');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //Aliases
							 | 
						||
| 
								 | 
							
								        resourceApi.activities.list = resourceApi.activities.get;
							 | 
						||
| 
								 | 
							
								        resourceApi.activities.create = resourceApi.activities.post;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //Add events sub-resource
							 | 
						||
| 
								 | 
							
								        resourceApi.events = function(eventSid) {
							 | 
						||
| 
								 | 
							
								            var eventResourceApi = {
							 | 
						||
| 
								 | 
							
								                get: generate(client, 'GET', baseResourceUrl + '/' + sid + '/Events/' + eventSid)
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            return eventResourceApi;
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        resourceApi.events.get = generate(client, 'GET', baseResourceUrl + '/' + sid + '/Events');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //Aliases
							 | 
						||
| 
								 | 
							
								        resourceApi.events.list = resourceApi.events.get;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //Add tasks sub-resource
							 | 
						||
| 
								 | 
							
								        resourceApi.tasks = function(taskSid) {
							 | 
						||
| 
								 | 
							
								            var taskResourceApi = {
							 | 
						||
| 
								 | 
							
								                get: generate(client, 'GET', baseResourceUrl + '/' + sid + '/Tasks/' + taskSid),
							 | 
						||
| 
								 | 
							
								                post: generate(client, 'POST', baseResourceUrl + '/' + sid + '/Tasks/' + taskSid),
							 | 
						||
| 
								 | 
							
								                delete: generate(client, 'DELETE', baseResourceUrl + '/' + sid + '/Tasks/' + taskSid)
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            //Aliases
							 | 
						||
| 
								 | 
							
								            taskResourceApi.update = taskResourceApi.post;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // Add reservation sub-resource
							 | 
						||
| 
								 | 
							
								            taskResourceApi.reservations = function(reservationSid) {
							 | 
						||
| 
								 | 
							
								                var reservationResourceApi = {
							 | 
						||
| 
								 | 
							
								                    get: generate(client, 'GET', baseResourceUrl + '/' + sid + '/Tasks/' + taskSid + '/Reservations/' + reservationSid),
							 | 
						||
| 
								 | 
							
								                    post: generate(client, 'POST', baseResourceUrl + '/' + sid + '/Tasks/' + taskSid + '/Reservations/' + reservationSid)
							 | 
						||
| 
								 | 
							
								                };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                //Aliases
							 | 
						||
| 
								 | 
							
								                reservationResourceApi.update = reservationResourceApi.post;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                return reservationResourceApi;
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            taskResourceApi.reservations.get = generate(client, 'GET', baseResourceUrl + '/' + sid + '/Tasks/' + taskSid + '/Reservations');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            //Aliases
							 | 
						||
| 
								 | 
							
								            taskResourceApi.reservations.list = taskResourceApi.reservations.get;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            return taskResourceApi;
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        resourceApi.tasks.get = generate(client, 'GET', baseResourceUrl + '/' + sid + '/Tasks');
							 | 
						||
| 
								 | 
							
								        resourceApi.tasks.post = generate(client, 'POST', baseResourceUrl + '/' + sid + '/Tasks');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //Aliases
							 | 
						||
| 
								 | 
							
								        resourceApi.tasks.list = resourceApi.tasks.get;
							 | 
						||
| 
								 | 
							
								        resourceApi.tasks.create = resourceApi.tasks.post;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //Add taskQueues sub-resource
							 | 
						||
| 
								 | 
							
								        resourceApi.taskQueues = function(taskQueueSid) {
							 | 
						||
| 
								 | 
							
								            var taskQueueResourceApi = {
							 | 
						||
| 
								 | 
							
								                get: generate(client, 'GET', baseResourceUrl + '/' + sid + '/TaskQueues/' + taskQueueSid),
							 | 
						||
| 
								 | 
							
								                post: generate(client, 'POST', baseResourceUrl + '/' + sid + '/TaskQueues/' + taskQueueSid),
							 | 
						||
| 
								 | 
							
								                delete: generate(client, 'DELETE', baseResourceUrl + '/' + sid + '/TaskQueues/' + taskQueueSid)
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            //Aliases
							 | 
						||
| 
								 | 
							
								            taskQueueResourceApi.update = taskQueueResourceApi.post;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // Statistics
							 | 
						||
| 
								 | 
							
								            taskQueueResourceApi.statistics = function() {
							 | 
						||
| 
								 | 
							
								                return {};
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            taskQueueResourceApi.statistics.get = generate(client, 'GET', baseResourceUrl + '/' + sid + '/TaskQueues/' + taskQueueSid + '/Statistics');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            return taskQueueResourceApi;
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        resourceApi.taskQueues.statistics = function() {
							 | 
						||
| 
								 | 
							
								            return {};
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        resourceApi.taskQueues.statistics.get = generate(client, 'GET', baseResourceUrl + '/' + sid + '/TaskQueues/Statistics');
							 | 
						||
| 
								 | 
							
								        resourceApi.taskQueues.statistics.list = resourceApi.taskQueues.statistics.get;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        resourceApi.taskQueues.get = generate(client, 'GET', baseResourceUrl + '/' + sid + '/TaskQueues');
							 | 
						||
| 
								 | 
							
								        resourceApi.taskQueues.post = generate(client, 'POST', baseResourceUrl + '/' + sid + '/TaskQueues');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //Aliases
							 | 
						||
| 
								 | 
							
								        resourceApi.taskQueues.list = resourceApi.taskQueues.get;
							 | 
						||
| 
								 | 
							
								        resourceApi.taskQueues.create = resourceApi.taskQueues.post;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //Add workers sub-resource
							 | 
						||
| 
								 | 
							
								        resourceApi.workers = function(workerSid) {
							 | 
						||
| 
								 | 
							
								            var workerResourceApi = {
							 | 
						||
| 
								 | 
							
								                get: generate(client, 'GET', baseResourceUrl + '/' + sid + '/Workers/' + workerSid),
							 | 
						||
| 
								 | 
							
								                post: generate(client, 'POST', baseResourceUrl + '/' + sid + '/Workers/' + workerSid),
							 | 
						||
| 
								 | 
							
								                delete: generate(client, 'DELETE', baseResourceUrl + '/' + sid + '/Workers/' + workerSid)
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            //Aliases
							 | 
						||
| 
								 | 
							
								            workerResourceApi.update = workerResourceApi.post;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // Statistics
							 | 
						||
| 
								 | 
							
								            workerResourceApi.statistics = function() {
							 | 
						||
| 
								 | 
							
								                return {};
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            workerResourceApi.statistics.get = generate(client, 'GET', baseResourceUrl + '/' + sid + '/Workers/' + workerSid + '/Statistics');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // Reservations
							 | 
						||
| 
								 | 
							
								            workerResourceApi.reservations = function(reservationSid) {
							 | 
						||
| 
								 | 
							
								                var reservationResourceApi = {
							 | 
						||
| 
								 | 
							
								                    get: generate(client, 'GET', baseResourceUrl + '/' + sid + '/Workers/' + workerSid + '/Reservations/' + reservationSid),
							 | 
						||
| 
								 | 
							
								                    post: generate(client, 'POST', baseResourceUrl + '/' + sid + '/Workers/' + workerSid + '/Reservations/' + reservationSid)
							 | 
						||
| 
								 | 
							
								                };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                //Aliases
							 | 
						||
| 
								 | 
							
								                reservationResourceApi.update = reservationResourceApi.post;
							 | 
						||
| 
								 | 
							
								                return reservationResourceApi;
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            workerResourceApi.reservations.get = generate(client, 'GET', baseResourceUrl + '/' + sid + '/Workers/' + workerSid + '/Reservations');
							 | 
						||
| 
								 | 
							
								            
							 | 
						||
| 
								 | 
							
								            //Aliases
							 | 
						||
| 
								 | 
							
								            workerResourceApi.reservations.list = workerResourceApi.reservations.get;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            return workerResourceApi;
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        resourceApi.workers.statistics = function() {
							 | 
						||
| 
								 | 
							
								            return {};
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        resourceApi.workers.statistics.get = generate(client, 'GET', baseResourceUrl + '/' + sid + '/Workers' + '/Statistics');
							 | 
						||
| 
								 | 
							
								        resourceApi.workers.statistics.list = resourceApi.workers.statistics.get;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        resourceApi.workers.get = generate(client, 'GET', baseResourceUrl + '/' + sid + '/Workers');
							 | 
						||
| 
								 | 
							
								        resourceApi.workers.post = generate(client, 'POST', baseResourceUrl + '/' + sid + '/Workers');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //Aliases
							 | 
						||
| 
								 | 
							
								        resourceApi.workers.list = resourceApi.workers.get;
							 | 
						||
| 
								 | 
							
								        resourceApi.workers.create = resourceApi.workers.post;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //Add workflows sub-resource
							 | 
						||
| 
								 | 
							
								        resourceApi.workflows = function(workflowSid) {
							 | 
						||
| 
								 | 
							
								            var workflowResourceApi = {
							 | 
						||
| 
								 | 
							
								                get: generate(client, 'GET', baseResourceUrl + '/' + sid + '/Workflows/' + workflowSid),
							 | 
						||
| 
								 | 
							
								                post: generate(client, 'POST', baseResourceUrl + '/' + sid + '/Workflows/' + workflowSid),
							 | 
						||
| 
								 | 
							
								                delete: generate(client, 'DELETE', baseResourceUrl + '/' + sid + '/Workflows/' + workflowSid)
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            //Aliases
							 | 
						||
| 
								 | 
							
								            workflowResourceApi.update = workflowResourceApi.post;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            workflowResourceApi.statistics = function() {
							 | 
						||
| 
								 | 
							
								                return {};
							 | 
						||
| 
								 | 
							
								            };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            workflowResourceApi.statistics.get = generate(client, 'GET', baseResourceUrl + '/' + sid + '/Workflows/' + workflowSid + '/Statistics');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            return workflowResourceApi;
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        resourceApi.workflows.get = generate(client, 'GET', baseResourceUrl + '/' + sid + '/Workflows');
							 | 
						||
| 
								 | 
							
								        resourceApi.workflows.post = generate(client, 'POST', baseResourceUrl + '/' + sid + '/Workflows');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //Aliases
							 | 
						||
| 
								 | 
							
								        resourceApi.workflows.list = resourceApi.workflows.get;
							 | 
						||
| 
								 | 
							
								        resourceApi.workflows.create = resourceApi.workflows.post;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Statistics
							 | 
						||
| 
								 | 
							
								        resourceApi.statistics = function() {
							 | 
						||
| 
								 | 
							
								            return {};
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        resourceApi.statistics.get = generate(client, 'GET', baseResourceUrl + '/' + sid + '/Statistics');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return resourceApi;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    //List requests
							 | 
						||
| 
								 | 
							
								    generate.restFunctions(Workspaces, client, ['GET', 'POST', {create: 'POST'}], baseResourceUrl);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return Workspaces;
							 | 
						||
| 
								 | 
							
								};
							 |