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

/**
@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;
};