mirror of
https://github.com/donl/plivo-node.git
synced 2026-05-25 22:07:10 -06:00
Merge branch 'master' into Fix_MessageResource
This commit is contained in:
commit
fd58050cca
78 changed files with 10533 additions and 2584 deletions
21
CHANGELOG.md
21
CHANGELOG.md
|
|
@ -1,5 +1,26 @@
|
|||
# Change Log
|
||||
|
||||
## [4.16.0](https://github.com/plivo/plivo-node/releases/tag/v4.16.0)(2021-04-19)
|
||||
- Added SDK support for Voice MultiPartyCall APIs and XML
|
||||
|
||||
## [4.15.0](https://github.com/plivo/plivo-node/releases/tag/v4.15.0)(2021-04-19)
|
||||
- Add support for Regulatory Compliance APIs.
|
||||
- Add "npanxx" and "local_calling_area" support for Search Phone Number.
|
||||
|
||||
## [4.14.3](https://github.com/plivo/plivo-node/releases/tag/v4.14.3)(2021-03-26)
|
||||
- Fix bug on stopRecording and all voice API flows post Typescript changes.
|
||||
|
||||
## [4.14.2](https://github.com/plivo/plivo-node/releases/tag/v4.14.2)(2021-02-17)
|
||||
- Fix duplicate call issue for make call API.
|
||||
|
||||
## [4.14.1](https://github.com/plivo/plivo-node/releases/tag/v4.14.1)(2021-02-09)
|
||||
- Fix Buy Number API & env variables support for TypeScript.
|
||||
|
||||
## [4.14.0](https://github.com/plivo/plivo-node/releases/tag/v4.14.0)(2021-01-29)
|
||||
- Add axios as HTTP client library.
|
||||
|
||||
## [4.13.0](https://github.com/plivo/plivo-node/releases/tag/v4.13.0)(2021-01-19)
|
||||
- Add TypeScript support.
|
||||
|
||||
## [4.12.0](https://github.com/plivo/plivo-node/releases/tag/v4.12.0)(2020-11-17)
|
||||
- Add number_priority support for Powerpack API.
|
||||
|
|
|
|||
45
examples/complianceApplications.js
Normal file
45
examples/complianceApplications.js
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
var Plivo = require('../dist/rest/client.js');
|
||||
var client = new Plivo.Client();
|
||||
|
||||
var createParams = {
|
||||
countryIso2: "US",
|
||||
numberType: "local",
|
||||
endUserType: "individual"
|
||||
};
|
||||
|
||||
var listParams = {
|
||||
countryIso2: "US",
|
||||
numberType: "local",
|
||||
endUserType: "individual",
|
||||
limit: 10,
|
||||
offset: 5
|
||||
};
|
||||
|
||||
var updateParams = {
|
||||
documentIds: [ "test-1", "test-2"],
|
||||
};
|
||||
|
||||
client.complianceApplications.create(createParams)
|
||||
.then(function(complianceApplication) {
|
||||
console.log("\n============ created ===========\n", complianceApplication)
|
||||
return client.complianceApplications.update(complianceApplication.id, updateParams);
|
||||
})
|
||||
.then(function(complianceApplication) {
|
||||
console.log("\n============ updated ===========\n", complianceApplication)
|
||||
return client.complianceApplications.get(complianceApplication.id);
|
||||
})
|
||||
.then(function(complianceApplication){
|
||||
console.log("\n============ list with id ===========\n", complianceApplication)
|
||||
return complianceApplications.delete(complianceApplication.id);
|
||||
})
|
||||
.then(function(result){
|
||||
console.log("\n============ deleted ===========\n", result)
|
||||
return client.complianceApplications.list(listParams)
|
||||
})
|
||||
.then(function(complianceApplications){
|
||||
console.log("\n============ list all ===========\n", complianceApplications)
|
||||
})
|
||||
.catch(function(response) {
|
||||
console.log("\n============ Error :: ===========\n", response);
|
||||
});
|
||||
|
||||
21
examples/complianceDocumentTypes.js
Normal file
21
examples/complianceDocumentTypes.js
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
var Plivo = require('../dist/rest/client.js');
|
||||
var client = new Plivo.Client();
|
||||
|
||||
var listParams = {
|
||||
documentName: "Test",
|
||||
proofRequired: "passport"
|
||||
};
|
||||
|
||||
client.complianceDocumentTypes.get("some-fake-id")
|
||||
.then(function(complianceDocumentType) {
|
||||
console.log("\n============ Fetch by ID ===========\n", complianceDocumentType)
|
||||
return client.complianceDocumentTypes.list(listParams);
|
||||
})
|
||||
.then(function(complianceDocumentTypes) {
|
||||
console.log("\n============ list all ===========\n", complianceDocumentTypes)
|
||||
})
|
||||
.catch(function(response) {
|
||||
console.log("\n============ Error :: ===========\n", response);
|
||||
});
|
||||
|
||||
|
||||
34
examples/complianceDocuments.js
Normal file
34
examples/complianceDocuments.js
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
var Plivo = require('../dist/rest/client.js');
|
||||
var client = new Plivo.Client();
|
||||
|
||||
var createParams = {
|
||||
alias: "testing",
|
||||
documentTypeId: "testing",
|
||||
complianceDocumentId: "test",
|
||||
metaInformation: "test meta",
|
||||
file: "test path to file"
|
||||
};
|
||||
|
||||
var updateDocument = {
|
||||
alias: "alias update"
|
||||
};
|
||||
|
||||
client.complianceDocuments.create(createParams)
|
||||
.then(function(complianceDocument) {
|
||||
console.log("\n============ created ===========\n", complianceDocument)
|
||||
return client.complianceDocuments.update(complianceDocument.id, updateDocument);
|
||||
})
|
||||
.then(function(complianceDocument){
|
||||
return complianceDocuments.delete();
|
||||
})
|
||||
.then(function(result){
|
||||
console.log("\n============ deleted ===========\n", result)
|
||||
return client.complianceDocuments.list()
|
||||
})
|
||||
.then(function(complianceDocuments){
|
||||
console.log("\n============ list all ===========\n", complianceDocuments)
|
||||
})
|
||||
.catch(function(response) {
|
||||
console.log("\n============ Error :: ===========\n", response);
|
||||
});
|
||||
|
||||
22
examples/complianceRequirements.js
Normal file
22
examples/complianceRequirements.js
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
var Plivo = require('../dist/rest/client.js');
|
||||
var client = new Plivo.Client();
|
||||
|
||||
var listParams = {
|
||||
countryIso2: "US",
|
||||
numberType: "local",
|
||||
endUserType: "individual"
|
||||
};
|
||||
|
||||
client.complianceRequirements.get("some-fake-id")
|
||||
.then(function(complianceRequirement) {
|
||||
console.log("\n============ Fetch by ID ===========\n", complianceRequirement)
|
||||
return client.complianceRequirements.list(listParams);
|
||||
})
|
||||
.then(function(complianceRequirements) {
|
||||
console.log("\n============ list all ===========\n", complianceRequirements)
|
||||
})
|
||||
.catch(function(response) {
|
||||
console.log("\n============ Error :: ===========\n", response);
|
||||
});
|
||||
|
||||
|
||||
37
examples/endUsers.js
Normal file
37
examples/endUsers.js
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
var Plivo = require('../dist/rest/client.js');
|
||||
var client = new Plivo.Client();
|
||||
|
||||
var createParams = {
|
||||
name: "testing name",
|
||||
lastName: "testing lastname",
|
||||
endUserType: "business"
|
||||
};
|
||||
|
||||
var updateParams = {
|
||||
endUserType: "individual"
|
||||
};
|
||||
|
||||
client.endUsers.create(createParams)
|
||||
.then(function(endUser) {
|
||||
console.log("\n============ created ===========\n", endUser)
|
||||
return client.endUsers.update(endUser.id, updateParams);
|
||||
})
|
||||
.then(function(endUser) {
|
||||
console.log("\n============ updated ===========\n", endUser)
|
||||
return client.endUsers.get(endUser.id);
|
||||
})
|
||||
.then(function(endUser){
|
||||
console.log("\n============ list with id ===========\n", endUser)
|
||||
return endUsers.delete();
|
||||
})
|
||||
.then(function(result){
|
||||
console.log("\n============ deleted ===========\n", result)
|
||||
return client.endUsers.list()
|
||||
})
|
||||
.then(function(endUsers){
|
||||
console.log("\n============ list all ===========\n", endUsers)
|
||||
})
|
||||
.catch(function(response) {
|
||||
console.log("\n============ Error :: ===========\n", response);
|
||||
});
|
||||
|
||||
|
|
@ -10,6 +10,7 @@ var babel = require('gulp-babel');
|
|||
var del = require('del');
|
||||
var isparta = require('isparta');
|
||||
|
||||
const merge = require("merge-stream");
|
||||
// Initialize the babel transpiler so ES2015 files gets compiled
|
||||
// when they're loaded
|
||||
require('babel-register');
|
||||
|
|
@ -73,9 +74,13 @@ gulp.task('coveralls', ['test'], function () {
|
|||
});
|
||||
|
||||
gulp.task('babel', ['clean'], function () {
|
||||
return gulp.src('lib/**/*.js')
|
||||
return merge([
|
||||
gulp.src('types/**/*.d.ts')
|
||||
.pipe(gulp.dest('dist/')),
|
||||
gulp.src('lib/**/*.js')
|
||||
.pipe(babel())
|
||||
.pipe(gulp.dest('dist'));
|
||||
.pipe(gulp.dest('dist'))
|
||||
]);
|
||||
});
|
||||
|
||||
gulp.task('lintFix', function () {
|
||||
|
|
|
|||
312
lib/base.js
312
lib/base.js
|
|
@ -4,115 +4,150 @@ let actionKey = Symbol('api action');
|
|||
let klassKey = Symbol('constructor');
|
||||
let idKey = Symbol('id filed');
|
||||
let clientKey = Symbol('make api call');
|
||||
let secondaryActionKey = Symbol('api action');
|
||||
let secondaryKlassKey = Symbol('constructor');
|
||||
let secondaryIdKey = Symbol('id filed');
|
||||
|
||||
export class PlivoGenericResponse {
|
||||
constructor(params, idString) {
|
||||
params = params || {};
|
||||
if (typeof idString !== 'undefined' && (idString in params)) {
|
||||
this.id = params[idString];
|
||||
} else if ('request_uuid' in params) {
|
||||
this.id = params.request_uuid;
|
||||
}
|
||||
extend(this, params);
|
||||
params = params || {};
|
||||
if (typeof idString !== 'undefined' && (idString in params)) {
|
||||
this.id = params[idString];
|
||||
} else if ('request_uuid' in params) {
|
||||
this.id = params.request_uuid;
|
||||
}
|
||||
extend(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
export class PlivoResource {
|
||||
constructor(action, klass, idField, request) {
|
||||
this[actionKey] = action;
|
||||
this[klassKey] = klass;
|
||||
this[idKey] = idField;
|
||||
this[clientKey] = request;
|
||||
}
|
||||
|
||||
update(params, id) {
|
||||
let client = this[clientKey];
|
||||
let action = this[actionKey];
|
||||
let that = this;
|
||||
id = typeof id !== 'undefined' ? id : that.id;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action + id + '/', params)
|
||||
.then(response => {
|
||||
extend(that, response.body);
|
||||
if (params.hasOwnProperty('isVoiceRequest')) {
|
||||
delete params.isVoiceRequest;
|
||||
}
|
||||
extend(that, params);
|
||||
resolve(that);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
delete(params) {
|
||||
let client = this[clientKey];
|
||||
let action = this[actionKey];
|
||||
let id = this.id;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('DELETE', action + id + '/', params)
|
||||
.then(() => {
|
||||
resolve(true);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
executeAction(task = '', method = 'GET', params = {}, action) {
|
||||
let client = this[clientKey];
|
||||
action = action == null ? this[actionKey] : action;
|
||||
let idField = this[idKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client(method, action + task, params)
|
||||
.then(response => {
|
||||
resolve(new PlivoGenericResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
customexecuteAction(url, method = 'GET', params = {}) {
|
||||
let client = this[clientKey];
|
||||
let idField = this[idKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client(method, url, params)
|
||||
.then(response => {
|
||||
resolve(new PlivoGenericResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
customexecuteGetNumberAction(url, method = 'GET', params = {}) {
|
||||
let client = this[clientKey];
|
||||
let idField = this[idKey];
|
||||
let number = "";
|
||||
let promise = client(method, url, params).then(response => {
|
||||
number = response.body.objects[0].number;
|
||||
return number;
|
||||
}).catch(error => {
|
||||
console.log(error);
|
||||
return error;
|
||||
});
|
||||
return promise;
|
||||
}
|
||||
getMetaResponse(url, method = 'GET', params = {}) {
|
||||
let client = this[clientKey];
|
||||
let idField = this[idKey];
|
||||
let count = 0;
|
||||
return new Promise((resolve, reject) => {
|
||||
client(method, url, params)
|
||||
.then(response => {
|
||||
count = response.body.meta.totalCount;
|
||||
resolve(count);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export class PlivoSecondaryResource {
|
||||
constructor(action, klass, idField, secondaryAction, secondaryKlass, secondaryIdField, request) {
|
||||
this[actionKey] = action;
|
||||
this[klassKey] = klass;
|
||||
this[idKey] = idField;
|
||||
this[clientKey] = request;
|
||||
this[secondaryActionKey] = secondaryAction;
|
||||
this[secondaryKlassKey] = secondaryKlass;
|
||||
this[secondaryIdKey] = secondaryIdField;
|
||||
}
|
||||
|
||||
update(params, id) {
|
||||
let client = this[clientKey];
|
||||
let action = this[actionKey];
|
||||
let that = this;
|
||||
id = typeof id !== 'undefined' ? id : that.id;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action + id + '/', params)
|
||||
.then(response => {
|
||||
extend(that, response.body);
|
||||
if (params.hasOwnProperty('isVoiceRequest')){
|
||||
delete params.isVoiceRequest;
|
||||
}
|
||||
extend(that, params);
|
||||
resolve(that);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
delete(params) {
|
||||
let client = this[clientKey];
|
||||
let action = this[actionKey];
|
||||
let id = this.id;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('DELETE', action + id + '/', params)
|
||||
.then(() => {
|
||||
resolve(true);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
executeAction(task = '', method = 'GET', params = {}, action) {
|
||||
executeAction(task = '', secondaryTask = '', method = 'GET', params = {}, action, secondaryAction) {
|
||||
let client = this[clientKey];
|
||||
action = action == null ? this[actionKey] : action;
|
||||
let idField = this[idKey];
|
||||
secondaryAction = secondaryAction == null ? this[secondaryActionKey] : secondaryAction;
|
||||
let secondaryIdField = this[secondaryIdKey]
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client(method, action + task, params)
|
||||
client(method, action + task + '/' + secondaryAction + secondaryTask + '/', params)
|
||||
.then(response => {
|
||||
resolve(new PlivoGenericResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
customexecuteAction(url, method = 'GET', params = {}) {
|
||||
let client = this[clientKey];
|
||||
let idField = this[idKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client(method, url, params)
|
||||
.then(response => {
|
||||
resolve(new PlivoGenericResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
customexecuteGetNumberAction(url, method = 'GET', params = {}) {
|
||||
let client = this[clientKey];
|
||||
let idField = this[idKey];
|
||||
let number = "";
|
||||
let promise = client(method, url, params).then(response => {
|
||||
number = response.body.objects[0].number;
|
||||
return number;
|
||||
}).catch(error => {
|
||||
console.log(error);
|
||||
return error;
|
||||
});
|
||||
return promise;
|
||||
}
|
||||
getMetaResponse(url, method = 'GET', params = {}) {
|
||||
let client = this[clientKey];
|
||||
let idField = this[idKey];
|
||||
let count = 0;
|
||||
return new Promise((resolve, reject) => {
|
||||
client(method, url, params)
|
||||
.then(response => {
|
||||
count = response.body.meta.totalCount;
|
||||
resolve(count);
|
||||
resolve(new PlivoGenericResponse(response.body, secondaryIdField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
|
|
@ -123,66 +158,69 @@ export class PlivoResource {
|
|||
|
||||
export class PlivoResourceInterface {
|
||||
constructor(action, klass, idField, request) {
|
||||
this[actionKey] = action;
|
||||
this[klassKey] = klass;
|
||||
this[idKey] = idField;
|
||||
this[clientKey] = request;
|
||||
this[actionKey] = action;
|
||||
this[klassKey] = klass;
|
||||
this[idKey] = idField;
|
||||
this[clientKey] = request;
|
||||
}
|
||||
|
||||
get(id, params = {}) {
|
||||
let client = this[clientKey];
|
||||
let action = this[actionKey];
|
||||
let Klass = this[klassKey];
|
||||
let client = this[clientKey];
|
||||
let action = this[actionKey];
|
||||
let Klass = this[klassKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
|
||||
client('GET', action + (id ? id + '/' : ''), params)
|
||||
.then(response => {
|
||||
resolve(new Klass(client, response.body));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
client('GET', action + (id ? id + '/' : ''), params)
|
||||
.then(response => {
|
||||
resolve(new Klass(client, response.body));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
list(params) {
|
||||
let client = this[clientKey];
|
||||
let action = this[actionKey];
|
||||
let Klass = this[klassKey];
|
||||
let client = this[clientKey];
|
||||
let action = this[actionKey];
|
||||
let Klass = this[klassKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('GET', action, params)
|
||||
.then(response => {
|
||||
let objects = [];
|
||||
Object.defineProperty(objects, 'meta', { value: response.body.meta, enumerable: true });
|
||||
response.body.objects.forEach(item => {
|
||||
objects.push(new Klass(client, item));
|
||||
});
|
||||
resolve(objects);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
return new Promise((resolve, reject) => {
|
||||
client('GET', action, params)
|
||||
.then(response => {
|
||||
let objects = [];
|
||||
Object.defineProperty(objects, 'meta', {
|
||||
value: response.body.meta,
|
||||
enumerable: true
|
||||
});
|
||||
response.body.objects.forEach(item => {
|
||||
objects.push(new Klass(client, item));
|
||||
});
|
||||
resolve(objects);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
create(params) {
|
||||
let client = this[clientKey];
|
||||
let idField = this[idKey];
|
||||
let action = this[actionKey] + (this.id ? this.id + '/' : '');
|
||||
let client = this[clientKey];
|
||||
let idField = this[idKey];
|
||||
let action = this[actionKey] + (this.id ? this.id + '/' : '');
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action, params)
|
||||
.then(response => {
|
||||
resolve(new PlivoGenericResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action, params)
|
||||
.then(response => {
|
||||
resolve(new PlivoGenericResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import {extend, validate} from '../utils/common.js';
|
||||
import {PlivoResource, PlivoResourceInterface} from '../base';
|
||||
import {extend, validate} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = '';
|
||||
const action = 'Subaccount/';
|
||||
const idField = 'authId';
|
||||
|
||||
/**
|
||||
|
|
@ -11,10 +11,77 @@ const idField = 'authId';
|
|||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
|
||||
export class GetAccountDetails
|
||||
{
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.accountType= params.accountType;
|
||||
this.address = params.address;
|
||||
this.apiId = params.apiId;
|
||||
this.autoRecharge = params.autoRecharge;
|
||||
this.billingMode = params.billingMode;
|
||||
this.cashCredits = params.cashCredits;
|
||||
this.city = params.city;
|
||||
this.name = params.name;
|
||||
this.resourceUri = params.resourceUri;
|
||||
this.state = params.state;
|
||||
this.timezone = params.timezone;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class CreateSubAccountResponse
|
||||
{
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId= params.apiId;
|
||||
this.authId = params.authId;
|
||||
this.authToken = params.authToken;
|
||||
this.message = params.message;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class UpdateSubAccountDetails
|
||||
{
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId= params.apiId;
|
||||
this.message = params.message;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class UpdateAccountDetailsResponse
|
||||
{
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId= params.apiId;
|
||||
this.message = params.message;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class GetSubAccountDetails {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.account= params.account;
|
||||
this.apiId = params.apiId;
|
||||
this.authId = params.authId;
|
||||
this.authToken = params.authToken;
|
||||
this.created = params.created;
|
||||
this.enabled = params.enabled;
|
||||
this.modified = params.modified;
|
||||
this.name = params.name;
|
||||
this.resourceUri = params.resourceUri;
|
||||
|
||||
}
|
||||
}
|
||||
export class Subaccount extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super('Subaccount/', Subaccount, idField, client);
|
||||
|
||||
this[clientKey] = client;
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
|
|
@ -47,7 +114,22 @@ export class Subaccount extends PlivoResource {
|
|||
params.enabled = enabled.toString();
|
||||
}
|
||||
|
||||
return super.update(params);
|
||||
let client = this[clientKey];
|
||||
let that = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action + that.id + '/', params)
|
||||
.then(response => {
|
||||
extend(that, response.body);
|
||||
if (params.hasOwnProperty('isVoiceRequest')){
|
||||
delete params.isVoiceRequest;
|
||||
}
|
||||
extend(that, params);
|
||||
resolve(new UpdateSubAccountDetails(that));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -57,18 +139,29 @@ export class Subaccount extends PlivoResource {
|
|||
* @promise {boolean} return true if subaccount deleted
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(cascade) {
|
||||
delete(cascade)
|
||||
{
|
||||
let params = {};
|
||||
|
||||
if (typeof cascade === 'boolean') {
|
||||
params.cascade = cascade.toString();
|
||||
}
|
||||
|
||||
return super.delete(params);
|
||||
let client = this[clientKey];
|
||||
let id = this.id;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('DELETE', action + id + '/', params)
|
||||
.then(() => {
|
||||
resolve(true);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Represents a Subaccount Interface
|
||||
* @constructor
|
||||
|
|
@ -98,7 +191,20 @@ export class SubaccountInterface extends PlivoResourceInterface {
|
|||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return super.get(id);
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
client('GET', action + (id ? id + '/' : ''))
|
||||
.then(response => {
|
||||
resolve(new GetSubAccountDetails(response.body,client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -125,8 +231,16 @@ export class SubaccountInterface extends PlivoResourceInterface {
|
|||
if (typeof enabled === 'boolean') {
|
||||
params.enabled = enabled.toString();
|
||||
}
|
||||
|
||||
return super.create(params);
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action + (this.id ? this.id + '/' : ''), params)
|
||||
.then(response => {
|
||||
resolve(new CreateSubAccountResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -197,10 +311,12 @@ export class Account extends PlivoResource {
|
|||
* @promise {PlivoGenericResponse} return PlivoGenericResponse object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get() {
|
||||
return new AccountInterface(this[clientKey])
|
||||
.get();
|
||||
}
|
||||
get() {
|
||||
return new AccountInterface(this[clientKey])
|
||||
.get();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* update account detail
|
||||
|
|
@ -213,7 +329,23 @@ export class Account extends PlivoResource {
|
|||
* @fail {Error} return Error
|
||||
*/
|
||||
update(params) {
|
||||
return super.update(params, '');
|
||||
|
||||
let client = this[clientKey];
|
||||
let that = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', '/', params)
|
||||
.then(response => {
|
||||
extend(that, response.body);
|
||||
if (params.hasOwnProperty('isVoiceRequest')){
|
||||
delete params.isVoiceRequest;
|
||||
}
|
||||
extend(that, params);
|
||||
resolve(new UpdateAccountDetailsResponse(that));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -238,8 +370,17 @@ export class AccountInterface extends PlivoResourceInterface {
|
|||
* @fail {Error} return Error
|
||||
*/
|
||||
get() {
|
||||
return super.get();
|
||||
}
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('GET', '/')
|
||||
.then(response => {
|
||||
resolve(new GetAccountDetails(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* update account detail
|
||||
|
|
|
|||
|
|
@ -1,5 +1,11 @@
|
|||
import {extend, validate} from '../utils/common.js';
|
||||
import {PlivoResource, PlivoResourceInterface} from '../base';
|
||||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'Application/';
|
||||
|
|
@ -11,60 +17,145 @@ const idField = 'appId';
|
|||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class Application extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, Application, idField, client);
|
||||
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
|
||||
export class UpdateApplicationResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.message = params.message;
|
||||
}
|
||||
|
||||
extend(this, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* update application
|
||||
* @method
|
||||
* @param {object} params - to update application
|
||||
* @param {string} [params.answerUrl] The URL invoked by Plivo when a call executes this application.
|
||||
* @param {string} [params.answerMethod] The method used to call the answer_url. Defaults to POST.
|
||||
* @param {string} [params.hangupUrl] The URL that is notified by Plivo when the call hangs up.
|
||||
* @param {string} [params.hangupMethod] The method used to call the hangup_url. Defaults to POST
|
||||
* @param {string} [params.fallbackAnswerUrl] Invoked by Plivo only if answer_url is unavailable or the XML response is invalid. Should contain a XML response.
|
||||
* @param {string} [params.fallbackMethod] The method used to call the fallback_answer_url. Defaults to POST.
|
||||
* @param {string} [params.messageUrl] The URL that is notified by Plivo when an inbound message is received. Defaults not set.
|
||||
* @param {string} [params.messageMethod] The method used to call the message_url. Defaults to POST.
|
||||
* @param {boolean} [params.defaultNumberApp] If set to true, associates all newly created Plivo numbers that have not specified an app_id, to this application.
|
||||
* @param {boolean} [params.defaultEndpointApp] If set to true, associates all newly created Plivo endpoints that have not specified an app_id, to this application.
|
||||
* @param {string} [params.subaccount] Id of the subaccount, in case only subaccount applications are needed.
|
||||
* @param {boolean} [params.logIncomingMessages] flag to control incoming message logs.
|
||||
|
||||
* @promise {object} return {@link Application} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(params) {
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.update(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* delete application
|
||||
* @method
|
||||
* @param {object} params - params to delete application
|
||||
* @param {boolean} [params.cascade] - delete associated endpoints
|
||||
* @param {string} [params.newEndpointApplication] - link associated endpoints with app
|
||||
* @promise {object} return true on success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(params) {
|
||||
if (typeof params.cascade === 'boolean') {
|
||||
params.cascade = params.cascade.toString();
|
||||
}
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.delete(params);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class CreateApplicationResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.appId = params.appId;
|
||||
this.message = params.message;
|
||||
}
|
||||
}
|
||||
|
||||
export class RetrieveApplicationResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.answerMethod = params.answerMethod;
|
||||
this.answerUrl = params.answerUrl;
|
||||
this.apiId = params.apiId;
|
||||
this.appId = params.appId;
|
||||
this.appName = params.appName;
|
||||
this.applicationType = params.applicationType;
|
||||
this.defaultApp = params.defaultApp;
|
||||
this.defaultEndpointApp = params.defaultEndpointApp;
|
||||
this.enabled = params.enabled;
|
||||
this.fallbackAnswerUrl = params.fallbackAnswerUrl;
|
||||
this.fallbackMethod = params.fallbackMethod;
|
||||
this.hangupMethod = params.hangupMethod;
|
||||
this.logIncomingMessage = params.logIncomingMessage;
|
||||
this.messageMethod = params.messageMethod;
|
||||
this.resourceUri = params.resourceUri;
|
||||
this.sipUri = params.sipUri;
|
||||
this.subAccount = params.subAccount;
|
||||
}
|
||||
}
|
||||
export class ListAllApplicationResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.answerMethod = params.answerMethod;
|
||||
this.answerUrl = params.answerUrl;
|
||||
this.apiId = params.apiId;
|
||||
this.appId = params.appId;
|
||||
this.appName = params.appName;
|
||||
this.applicationType = params.applicationType;
|
||||
this.defaultApp = params.defaultApp;
|
||||
this.defaultEndpointApp = params.defaultEndpointApp;
|
||||
this.enabled = params.enabled;
|
||||
this.fallbackAnswerUrl = params.fallbackAnswerUrl;
|
||||
this.fallbackMethod = params.fallbackMethod;
|
||||
this.hangupMethod = params.hangupMethod;
|
||||
this.logIncomingMessage = params.logIncomingMessage;
|
||||
this.messageMethod = params.messageMethod;
|
||||
this.resourceUri = params.resourceUri;
|
||||
this.sipUri = params.sipUri;
|
||||
this.subAccount = params.subAccount;
|
||||
}
|
||||
}
|
||||
|
||||
export class Application extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, Application, idField, client);
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
this[clientKey] = client;
|
||||
extend(this, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* update application
|
||||
* @method
|
||||
* @param {object} params - to update application
|
||||
* @param {string} [params.answerUrl] The URL invoked by Plivo when a call executes this application.
|
||||
* @param {string} [params.answerMethod] The method used to call the answer_url. Defaults to POST.
|
||||
* @param {string} [params.hangupUrl] The URL that is notified by Plivo when the call hangs up.
|
||||
* @param {string} [params.hangupMethod] The method used to call the hangup_url. Defaults to POST
|
||||
* @param {string} [params.fallbackAnswerUrl] Invoked by Plivo only if answer_url is unavailable or the XML response is invalid. Should contain a XML response.
|
||||
* @param {string} [params.fallbackMethod] The method used to call the fallback_answer_url. Defaults to POST.
|
||||
* @param {string} [params.messageUrl] The URL that is notified by Plivo when an inbound message is received. Defaults not set.
|
||||
* @param {string} [params.messageMethod] The method used to call the message_url. Defaults to POST.
|
||||
* @param {boolean} [params.defaultNumberApp] If set to true, associates all newly created Plivo numbers that have not specified an app_id, to this application.
|
||||
* @param {boolean} [params.defaultEndpointApp] If set to true, associates all newly created Plivo endpoints that have not specified an app_id, to this application.
|
||||
* @param {string} [params.subaccount] Id of the subaccount, in case only subaccount applications are needed.
|
||||
* @param {boolean} [params.logIncomingMessages] flag to control incoming message logs.
|
||||
|
||||
* @promise {object} return {@link Application} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(params) {
|
||||
params.isVoiceRequest = 'true';
|
||||
let client = this[clientKey];
|
||||
let that = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action + that.id + '/', params)
|
||||
.then(response => {
|
||||
extend(that, response.body);
|
||||
if (params.hasOwnProperty('isVoiceRequest')) {
|
||||
delete params.isVoiceRequest;
|
||||
}
|
||||
extend(that, params);
|
||||
resolve(new UpdateApplicationResponse(that));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* delete application
|
||||
* @method
|
||||
* @param {object} params - params to delete application
|
||||
* @param {boolean} [params.cascade] - delete associated endpoints
|
||||
* @param {string} [params.newEndpointApplication] - link associated endpoints with app
|
||||
* @promise {object} return true on success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(params, id) {
|
||||
let client = this[clientKey];
|
||||
params.isVoiceRequest = 'true';
|
||||
return new Promise((resolve, reject) => {
|
||||
client('DELETE', action + id + '/', params)
|
||||
.then(() => {
|
||||
resolve(true);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a Application interface
|
||||
* @constructor
|
||||
|
|
@ -73,126 +164,167 @@ export class Application extends PlivoResource {
|
|||
*/
|
||||
export class ApplicationInterface extends PlivoResourceInterface {
|
||||
|
||||
constructor(client, data = {}) {
|
||||
super(action, Application, idField, client);
|
||||
extend(this, data);
|
||||
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* get application by given id
|
||||
* @method
|
||||
* @param {string} id - id of application
|
||||
* @promise {object} return {@link Application} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id) {
|
||||
let params = {}
|
||||
params.isVoiceRequest = 'true'
|
||||
return super.get(id, params);
|
||||
}
|
||||
|
||||
/**
|
||||
* list applications
|
||||
* @method
|
||||
* @param {object} params - params to list applications
|
||||
* @param {string} [params.subaccount] - ID of the subaccount if present
|
||||
* @param {integer} [params.limit] - To display no of results per page
|
||||
* @param {integer} [params.offset] - No of value items by which results should be offset
|
||||
*/
|
||||
list(params= {}) {
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.list(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* create Application
|
||||
* @method
|
||||
* @param {string} appName - name of application
|
||||
* @param {object} params - params to create application
|
||||
* @param {string} [params.answerUrl] - answer url
|
||||
* @param {string} [params.appName] The name of your application
|
||||
* @param {string} [params.answerUrl] The URL invoked by Plivo when a call executes this application.
|
||||
* @param {string} [params.answerMethod] The method used to call the answer_url. Defaults to POST.
|
||||
* @param {string} [params.hangupUrl] The URL that is notified by Plivo when the call hangs up.
|
||||
* @param {string} [params.hangupMethod] The method used to call the hangup_url. Defaults to POST
|
||||
* @param {string} [params.fallbackAnswerUrl] Invoked by Plivo only if answer_url is unavailable or the XML response is invalid. Should contain a XML response.
|
||||
* @param {string} [params.fallbackMethod] The method used to call the fallback_answer_url. Defaults to POST.
|
||||
* @param {string} [params.messageUrl] The URL that is notified by Plivo when an inbound message is received. Defaults not set.
|
||||
* @param {string} [params.messageMethod] The method used to call the message_url. Defaults to POST.
|
||||
* @param {boolean} [params.defaultNumberApp] If set to true, associates all newly created Plivo numbers that have not specified an app_id, to this application.
|
||||
* @param {boolean} [params.defaultEndpointApp] If set to true, associates all newly created Plivo endpoints that have not specified an app_id, to this application.
|
||||
* @param {string} [params.subaccount] Id of the subaccount, in case only subaccount applications are needed.
|
||||
* @param {boolean} [params.logIncomingMessages] flag to control incoming message logs.
|
||||
* @promise {object} return {@link PlivoGenericResponse} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
create(appName, params = {}) {
|
||||
|
||||
let errors = validate([
|
||||
{field: 'app_name', value: appName, validators: ['isRequired', 'isString']}
|
||||
]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
constructor(client, data = {}) {
|
||||
super(action, Application, idField, client);
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
params.app_name = appName;
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.create(params);
|
||||
}
|
||||
/**
|
||||
* get application by given id
|
||||
* @method
|
||||
* @param {string} id - id of application
|
||||
* @promise {object} return {@link Application} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id) {
|
||||
let params = {}
|
||||
params.isVoiceRequest = 'true'
|
||||
let client = this[clientKey];
|
||||
|
||||
/**
|
||||
* update Application
|
||||
* @method
|
||||
* @param {string} id - id of application
|
||||
* @param {object} params - to update application
|
||||
* @param {string} [params.answerUrl] The URL invoked by Plivo when a call executes this application.
|
||||
* @param {string} [params.answerMethod] The method used to call the answer_url. Defaults to POST.
|
||||
* @param {string} [params.hangupUrl] The URL that is notified by Plivo when the call hangs up.
|
||||
* @param {string} [params.hangupMethod] The method used to call the hangup_url. Defaults to POST
|
||||
* @param {string} [params.fallbackAnswerUrl] Invoked by Plivo only if answer_url is unavailable or the XML response is invalid. Should contain a XML response.
|
||||
* @param {string} [params.fallbackMethod] The method used to call the fallback_answer_url. Defaults to POST.
|
||||
* @param {string} [params.messageUrl] The URL that is notified by Plivo when an inbound message is received. Defaults not set.
|
||||
* @param {string} [params.messageMethod] The method used to call the message_url. Defaults to POST.
|
||||
* @param {boolean} [params.defaultNumberApp] If set to true, associates all newly created Plivo numbers that have not specified an app_id, to this application.
|
||||
* @param {boolean} [params.defaultEndpointApp] If set to true, associates all newly created Plivo endpoints that have not specified an app_id, to this application.
|
||||
* @param {string} [params.subaccount] Id of the subaccount, in case only subaccount applications are needed.
|
||||
* @param {boolean} [params.logIncomingMessages] flag to control incoming message logs.
|
||||
* @promise {object} return {@link Application} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(id, params) {
|
||||
let errors = validate([
|
||||
{field: 'id', value: id, validators: ['isRequired']}
|
||||
]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new Application(this[clientKey], {
|
||||
id: id
|
||||
}).update(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* delete Application
|
||||
* @method
|
||||
* @param {string} id - id of application
|
||||
* @param {object} params - params to delete application
|
||||
* @param {boolean} [params.cascade] - delete associated endpoints
|
||||
* @param {string} [params.newEndpointApplication] - link associated endpoints with app
|
||||
* @promise {object} return true on success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(id, params = {}) {
|
||||
if (typeof params.cascade === 'boolean') {
|
||||
params.cascade = params.cascade.toString();
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
client('GET', action + (id ? id + '/' : ''), params)
|
||||
.then(response => {
|
||||
resolve(new RetrieveApplicationResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
return new Application(this[clientKey], {
|
||||
id: id
|
||||
}).delete(params);
|
||||
}
|
||||
/**
|
||||
* list applications
|
||||
* @method
|
||||
* @param {object} params - params to list applications
|
||||
* @param {string} [params.subaccount] - ID of the subaccount if present
|
||||
* @param {integer} [params.limit] - To display no of results per page
|
||||
* @param {integer} [params.offset] - No of value items by which results should be offset
|
||||
*/
|
||||
list(params = {}) {
|
||||
let client = this[clientKey];
|
||||
params.isVoiceRequest = true;
|
||||
return new Promise((resolve, reject) => {
|
||||
client('GET', action, params)
|
||||
.then(response => {
|
||||
let objects = [];
|
||||
Object.defineProperty(objects, 'meta', {
|
||||
value: response.body.meta,
|
||||
enumerable: true
|
||||
});
|
||||
response.body.objects.forEach(item => {
|
||||
objects.push(new ListAllApplicationResponse(item, client));
|
||||
});
|
||||
resolve(objects);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* create Application
|
||||
* @method
|
||||
* @param {string} appName - name of application
|
||||
* @param {object} params - params to create application
|
||||
* @param {string} [params.answerUrl] - answer url
|
||||
* @param {string} [params.appName] The name of your application
|
||||
* @param {string} [params.answerUrl] The URL invoked by Plivo when a call executes this application.
|
||||
* @param {string} [params.answerMethod] The method used to call the answer_url. Defaults to POST.
|
||||
* @param {string} [params.hangupUrl] The URL that is notified by Plivo when the call hangs up.
|
||||
* @param {string} [params.hangupMethod] The method used to call the hangup_url. Defaults to POST
|
||||
* @param {string} [params.fallbackAnswerUrl] Invoked by Plivo only if answer_url is unavailable or the XML response is invalid. Should contain a XML response.
|
||||
* @param {string} [params.fallbackMethod] The method used to call the fallback_answer_url. Defaults to POST.
|
||||
* @param {string} [params.messageUrl] The URL that is notified by Plivo when an inbound message is received. Defaults not set.
|
||||
* @param {string} [params.messageMethod] The method used to call the message_url. Defaults to POST.
|
||||
* @param {boolean} [params.defaultNumberApp] If set to true, associates all newly created Plivo numbers that have not specified an app_id, to this application.
|
||||
* @param {boolean} [params.defaultEndpointApp] If set to true, associates all newly created Plivo endpoints that have not specified an app_id, to this application.
|
||||
* @param {string} [params.subaccount] Id of the subaccount, in case only subaccount applications are needed.
|
||||
* @param {boolean} [params.logIncomingMessages] flag to control incoming message logs.
|
||||
* @promise {object} return {@link PlivoGenericResponse} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
create(appName, params = {}) {
|
||||
|
||||
let errors = validate([{
|
||||
field: 'app_name',
|
||||
value: appName,
|
||||
validators: ['isRequired', 'isString']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
params.app_name = appName;
|
||||
params.isVoiceRequest = 'true';
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
console.log(action, params)
|
||||
client('POST', action, params)
|
||||
.then(response => {
|
||||
resolve(new CreateApplicationResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* update Application
|
||||
* @method
|
||||
* @param {string} id - id of application
|
||||
* @param {object} params - to update application
|
||||
* @param {string} [params.answerUrl] The URL invoked by Plivo when a call executes this application.
|
||||
* @param {string} [params.answerMethod] The method used to call the answer_url. Defaults to POST.
|
||||
* @param {string} [params.hangupUrl] The URL that is notified by Plivo when the call hangs up.
|
||||
* @param {string} [params.hangupMethod] The method used to call the hangup_url. Defaults to POST
|
||||
* @param {string} [params.fallbackAnswerUrl] Invoked by Plivo only if answer_url is unavailable or the XML response is invalid. Should contain a XML response.
|
||||
* @param {string} [params.fallbackMethod] The method used to call the fallback_answer_url. Defaults to POST.
|
||||
* @param {string} [params.messageUrl] The URL that is notified by Plivo when an inbound message is received. Defaults not set.
|
||||
* @param {string} [params.messageMethod] The method used to call the message_url. Defaults to POST.
|
||||
* @param {boolean} [params.defaultNumberApp] If set to true, associates all newly created Plivo numbers that have not specified an app_id, to this application.
|
||||
* @param {boolean} [params.defaultEndpointApp] If set to true, associates all newly created Plivo endpoints that have not specified an app_id, to this application.
|
||||
* @param {string} [params.subaccount] Id of the subaccount, in case only subaccount applications are needed.
|
||||
* @param {boolean} [params.logIncomingMessages] flag to control incoming message logs.
|
||||
* @promise {object} return {@link Application} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(id, params) {
|
||||
let errors = validate([{
|
||||
field: 'id',
|
||||
value: id,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new Application(this[clientKey], {
|
||||
id: id
|
||||
}).update(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* delete Application
|
||||
* @method
|
||||
* @param {string} id - id of application
|
||||
* @param {object} params - params to delete application
|
||||
* @param {boolean} [params.cascade] - delete associated endpoints
|
||||
* @param {string} [params.newEndpointApplication] - link associated endpoints with app
|
||||
* @promise {object} return true on success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(id, params = {}) {
|
||||
if (typeof params.cascade === 'boolean') {
|
||||
params.cascade = params.cascade.toString();
|
||||
}
|
||||
return new Application(this[clientKey], {
|
||||
id: id
|
||||
}).delete(params, id);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,7 +1,24 @@
|
|||
import {extend, validate} from '../utils/common.js';
|
||||
import {PlivoResource, PlivoResourceInterface} from '../base';
|
||||
import * as _ from "lodash";
|
||||
|
||||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
export class CallFeedbackResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.message = params.message;
|
||||
this.status = params.status;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'Call/';
|
||||
const idField = 'callUuid';
|
||||
|
|
@ -10,14 +27,14 @@ const CALLINSIGHTS_BASE_URL = 'https://stats.plivo.com/'
|
|||
export class CallFeedback extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, Call, idField, client);
|
||||
|
||||
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
this.id = data[idField];
|
||||
}
|
||||
|
||||
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -30,15 +47,22 @@ export class CallFeedbackInterface extends PlivoResourceInterface {
|
|||
constructor(client, data = {}) {
|
||||
super(action, CallFeedback, idField, client);
|
||||
extend(this, data);
|
||||
|
||||
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
create(callUUID, rating, issues=[], notes="") {
|
||||
let errors = validate([
|
||||
{field: 'callUUId', value: callUUID, validators: ['isRequired']},
|
||||
{field: 'rating', value: rating, validators: ['isRequired']}
|
||||
]);
|
||||
}
|
||||
|
||||
create(callUUID, rating, issues = [], notes = "") {
|
||||
let errors = validate([{
|
||||
field: 'callUUId',
|
||||
value: callUUID,
|
||||
validators: ['isRequired']
|
||||
},
|
||||
{
|
||||
field: 'rating',
|
||||
value: rating,
|
||||
validators: ['isRequired']
|
||||
}
|
||||
]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
|
|
@ -55,7 +79,17 @@ export class CallFeedbackInterface extends PlivoResourceInterface {
|
|||
params.isCallInsightsRequest = "";
|
||||
params.CallInsightsBaseUrl = CALLINSIGHTS_BASE_URL;
|
||||
params.CallInsightsRequestPath = `v1/Call/${callUUID}/Feedback/`;
|
||||
return super.create(params);
|
||||
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action, params)
|
||||
.then(response => {
|
||||
resolve(new CallFeedbackResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
281
lib/resources/complianceApplications.js
Normal file
281
lib/resources/complianceApplications.js
Normal file
|
|
@ -0,0 +1,281 @@
|
|||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'ComplianceApplication/';
|
||||
const idField = 'complianceApplicationId';
|
||||
|
||||
export class ComplianceApplicationResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.complianceApplicationId = params.complianceApplicationId;
|
||||
this.alias = params.alias;
|
||||
this.status = params.status;
|
||||
this.endUserType = params.endUserType;
|
||||
this.endUserId = params.endUserId;
|
||||
this.countryIso2 = params.countryIso2;
|
||||
this.numberType = params.numberType;
|
||||
this.complianceRequirementId= params.complianceRequirementId;
|
||||
this.documents = params.documents;
|
||||
this.createdAt = params.createdAt;
|
||||
}
|
||||
}
|
||||
|
||||
export class CreateComplianceApplicationResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.complianceApplicationId = params.complianceApplicationId;
|
||||
this.alias = params.alias;
|
||||
this.status = params.status;
|
||||
this.endUserType = params.endUserType;
|
||||
this.endUserId = params.endUserId;
|
||||
this.countryIso2 = params.countryIso2;
|
||||
this.numberType = params.numberType;
|
||||
this.message = params.message;
|
||||
this.complianceRequirementId= params.complianceRequirementId;
|
||||
this.documents = params.documents;
|
||||
this.createdAt = params.createdAt;
|
||||
}
|
||||
}
|
||||
|
||||
export class ListComplianceApplicationResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.meta = params.meta;
|
||||
this.objects = params.objects;
|
||||
}
|
||||
}
|
||||
|
||||
export class UpdateComplianceApplicationResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.message = params.message;
|
||||
}
|
||||
}
|
||||
|
||||
export class ComplianceApplication extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, ComplianceApplication, idField, client);
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
this[clientKey] = client;
|
||||
extend(this, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* update ComplianceApplication
|
||||
* @method
|
||||
* @param {string} id - id to update
|
||||
* @param {object} params
|
||||
* @param {string} [params.documentIds] - Document IDs
|
||||
* @promise {object} return {@link ComplianceApplication} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(params, id) {
|
||||
let client = this[clientKey];
|
||||
let that = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action + id + '/', params)
|
||||
.then(response => {
|
||||
extend(that, response.body);
|
||||
extend(that, params);
|
||||
resolve(new UpdateComplianceApplicationResponse(that));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* delete an Compliance application
|
||||
* @method
|
||||
* @param {string} id - id to delete
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete() {
|
||||
let client = this[clientKey];
|
||||
let id = this.id;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('DELETE', action + id + '/')
|
||||
.then(() => {
|
||||
resolve(true);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a Compliance Application interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class ComplianceApplicationInterface extends PlivoResourceInterface {
|
||||
|
||||
constructor(client, data = {}) {
|
||||
super(action, ComplianceApplication, idField, client);
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* get application by given id
|
||||
* @method
|
||||
* @param {string} id - id of application
|
||||
* @promise {object} return {@link EndUser} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id) {
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
client('GET', action + (id ? id + '/' : ''))
|
||||
.then(response => {
|
||||
resolve(new ComplianceApplicationResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* list all applications
|
||||
* @method
|
||||
* @param {object} params - params to list endusers
|
||||
* @param {string} [params.status] - Status of the application
|
||||
* @param {string} [params.endUserId] - End user ID related to application
|
||||
* @param {string} [params.numberType] -Number Type related to application
|
||||
* @param {integer} [params.offset] - No of value items by which results should be offset
|
||||
* @param {integer} [params.limit] - No of value items by which results should be offset
|
||||
*/
|
||||
list(params = {}) {
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('GET', action, params)
|
||||
.then(response => {
|
||||
resolve(new ListComplianceApplicationResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a complaince application
|
||||
* @method
|
||||
* @param {object} params
|
||||
* @param {string} [params.complianceRequirementId] - compliance requirement ID.
|
||||
* @param {string} [params.endUserId] - End user ID.
|
||||
* @param {string} [params.alias] - Alias
|
||||
* @param {string} [params.documentIds] - Document IDs
|
||||
* @param {string} [params.endUserType] - End user type
|
||||
* @param {string} [params.countryIso2] - CountryISo2
|
||||
* @param {string} [params.numberType] - Number Type
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
create(params = {}) {
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action, params)
|
||||
.then(response => {
|
||||
resolve(new CreateComplianceApplicationResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* update ComplianceApplication
|
||||
* @method
|
||||
* @param {string} id - id to update
|
||||
* @param {object} params
|
||||
* @param {string} [params.documentIds] - Document IDs
|
||||
* @promise {object} return {@link ComplianceApplication} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(id, params) {
|
||||
let errors = validate([{
|
||||
field: 'id',
|
||||
value: id,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new ComplianceApplication(this[clientKey], {
|
||||
id: id
|
||||
}).update(params, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* delete ComplianceApplication
|
||||
* @method
|
||||
* @param {string} id - id to delete
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(id) {
|
||||
let errors = validate([{
|
||||
field: 'id',
|
||||
value: id,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new ComplianceApplication(this[clientKey], {
|
||||
id: id
|
||||
}).delete();
|
||||
}
|
||||
|
||||
/**
|
||||
* submit an application by given id
|
||||
* @method
|
||||
* @param {string} id - id of application
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
submit(id) {
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
|
||||
client('POST', action + (id ? id + '/Submit/' : ''))
|
||||
.then(response => {
|
||||
resolve(new ComplianceApplicationResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
110
lib/resources/complianceDocumentTypes.js
Normal file
110
lib/resources/complianceDocumentTypes.js
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'ComplianceDocumentType/';
|
||||
const idField = 'documentTypeID';
|
||||
|
||||
export class ComplianceDocumentTypeResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.documentTypeId = params.documentTypeId;
|
||||
this.documentName = params.documentName;
|
||||
this.description = params.description;
|
||||
this.information = params.information;
|
||||
this.proofRequired = params.proofRequired;
|
||||
this.createdAt = params.createdAt;
|
||||
}
|
||||
}
|
||||
|
||||
export class ListComplianceDocumentTypeResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.meta = params.meta;
|
||||
this.objects = params.objects;
|
||||
}
|
||||
}
|
||||
|
||||
export class ComplianceDocumentType extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, ComplianceDocumentType, idField, client);
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
this[clientKey] = client;
|
||||
extend(this, data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a Compliance Document Type interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class ComplianceDocumentTypeInterface extends PlivoResourceInterface {
|
||||
|
||||
constructor(client, data = {}) {
|
||||
super(action, ComplianceDocumentType, idField, client);
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* get compliance document types by id
|
||||
* @method
|
||||
* @param {string} id - id of the compliane document type.
|
||||
* @promise {object} return {@link ComplianceDocumentType} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id) {
|
||||
let params = {}
|
||||
params.isVoiceRequest = 'false'
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
|
||||
client('GET', action + (id ? id + '/' : ''))
|
||||
.then(response => {
|
||||
resolve(new ComplianceDocumentTypeResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* list compliance document types
|
||||
* @method
|
||||
* @param {object} params - params to list endusers
|
||||
* @param {string} [params.documentTypeID] - Document Type ID of the document id.
|
||||
* @param {string} [params.documentName] - Document name of the document if present.
|
||||
* @param {string} [params.description] - Description of the document type.
|
||||
* @param {string} [params.information] - Information about the document type.
|
||||
* @param {string} [params.proofRequired] - Proofs required for the document.
|
||||
*/
|
||||
list(params = {}) {
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('GET', action, params)
|
||||
.then(response => {
|
||||
resolve(new ListComplianceDocumentTypeResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
264
lib/resources/complianceDocuments.js
Normal file
264
lib/resources/complianceDocuments.js
Normal file
|
|
@ -0,0 +1,264 @@
|
|||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'ComplianceDocument/';
|
||||
const idField = 'complianceDocumentId';
|
||||
|
||||
export class ComplianceDocumentResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.documentTypeId = params.documentTypeId;
|
||||
this.documentId = params.documentId;
|
||||
this.endUserId = params.endUserId;
|
||||
this.alias = params.alias;
|
||||
this.metaInformation = params.metaInformation;
|
||||
this.fileName = params.fileName,
|
||||
this.createdAt = params.createdAt;
|
||||
}
|
||||
}
|
||||
|
||||
export class CreateComplianceDocumentResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.documentTypeId = params.documentTypeId;
|
||||
this.documentId = params.documentId;
|
||||
this.endUserId = params.endUserId;
|
||||
this.alias = params.alias;
|
||||
this.message = params.message;
|
||||
this.metaInformation = params.metaInformation;
|
||||
this.fileName = params.fileName,
|
||||
this.createdAt = params.createdAt;
|
||||
}
|
||||
}
|
||||
|
||||
export class ListComplianceDocumentsResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.meta = params.meta;
|
||||
this.objects = params.objects;
|
||||
}
|
||||
}
|
||||
|
||||
export class UpdateComplianceDocumentResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.message = params.message;
|
||||
}
|
||||
}
|
||||
|
||||
export class ComplianceDocument extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, ComplianceDocument, idField, client);
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
this[clientKey] = client;
|
||||
extend(this, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* update Compliance Document
|
||||
* @method
|
||||
* @param {string} id - compliance document id of the document.
|
||||
* @param {object} params - optional params array of updated values
|
||||
* @promise {object} return {@link ComplianceDocument} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(params, id) {
|
||||
let client = this[clientKey];
|
||||
let that = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
if ((params.file) != 'undefined') {
|
||||
params.multipart = true;
|
||||
}
|
||||
|
||||
client('POST', action + id + '/', params)
|
||||
.then(response => {
|
||||
extend(that, response.body);
|
||||
extend(that, params);
|
||||
resolve(new UpdateComplianceDocumentResponse(that));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* delete an Compliance Document
|
||||
* @method
|
||||
* @param {string} id - id to delete
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete() {
|
||||
let client = this[clientKey];
|
||||
let id = this.id;
|
||||
return new Promise((resolve, reject) => {
|
||||
client('DELETE', action + id + '/')
|
||||
.then(() => {
|
||||
resolve(true);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a Compliance Application interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class ComplianceDocumentInterface extends PlivoResourceInterface {
|
||||
constructor(client, data = {}) {
|
||||
super(action, ComplianceDocument, idField, client);
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* get compliance document by given id
|
||||
* @method
|
||||
* @param {string} id - id of the document
|
||||
* @promise {object} return {@link ComplianceDocument} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id) {
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
client('GET', action + (id ? id + '/' : ''))
|
||||
.then(response => {
|
||||
let object = new ComplianceDocumentResponse(response.body, client);
|
||||
Object.keys(object).forEach(key => object[key] === undefined && delete object[key]);
|
||||
resolve(object);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* list all documents
|
||||
* @method
|
||||
* @param {object} params - params containing options to list compliance documents by.
|
||||
*/
|
||||
list(params = {}) {
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('GET', action, params)
|
||||
.then(response => {
|
||||
resolve(new ListComplianceDocumentsResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a complaince document
|
||||
* @method
|
||||
* @param {object} params
|
||||
* @param {string} [params.complianceRequirementId] - compliance requirement ID.
|
||||
* @param {string} [params.endUserId] - End user ID.
|
||||
* @param {string} [params.alias] - Alias
|
||||
* @param {string} [params.documentTypeId] - Document Type ID
|
||||
* @param {string} [params.file] - File array of the files to be uploaded
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
create(params = {}) {
|
||||
let client = this[clientKey];
|
||||
let errors = validate([
|
||||
{ field: 'endUserId', value: params.endUserId, validators: ['isRequired', 'isString'] }
|
||||
]);
|
||||
|
||||
errors = validate([
|
||||
{ field: 'documentTypeId', value: params.documentTypeId, validators: ['isRequired', 'isString'] }
|
||||
]);
|
||||
|
||||
errors = validate([
|
||||
{ field: 'alias', value: params.alias, validators: ['isRequired', 'isString'] }
|
||||
]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
params.multipart = true;
|
||||
client('POST', action, params)
|
||||
.then(response => {
|
||||
let object = new CreateComplianceDocumentResponse(response.body, idField);
|
||||
Object.keys(object).forEach(key => object[key] === undefined && delete object[key]);
|
||||
resolve(object);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* update Compliance Document
|
||||
* @method
|
||||
* @param {string} id - compliance document id of the document.
|
||||
* @param {object} params - optional params array of updated values
|
||||
* @promise {object} return {@link ComplianceDocument} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(id, params) {
|
||||
let errors = validate([{
|
||||
field: 'id',
|
||||
value: id,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new ComplianceDocument(this[clientKey], {
|
||||
id: id
|
||||
}).update(params, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* delete a Compliance Document
|
||||
* @method
|
||||
* @param {string} id - id to delete
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(id) {
|
||||
let errors = validate([{
|
||||
field: 'id',
|
||||
value: id,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new ComplianceDocument(this[clientKey], {
|
||||
id: id
|
||||
}).delete();
|
||||
}
|
||||
}
|
||||
100
lib/resources/complianceRequirements.js
Normal file
100
lib/resources/complianceRequirements.js
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'ComplianceRequirement/';
|
||||
const idField = 'ComplianceRequirementId';
|
||||
|
||||
|
||||
export class ComplianceRequirementResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.complianceRequirementId = params.complianceRequirementId;
|
||||
this.countryIso2 = params.countryIso2;
|
||||
this.numberType = params.numberType;
|
||||
this.endUserType = params.endUserType;
|
||||
this.acceptableDocumentTypes = params.acceptableDocumentTypes;
|
||||
}
|
||||
}
|
||||
|
||||
export class ComplianceRequirement extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, ComplianceRequirement, idField, client);
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
this[clientKey] = client;
|
||||
extend(this, data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a Compliance Requirement
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class ComplianceRequirementInterface extends PlivoResourceInterface {
|
||||
|
||||
constructor(client, data = {}) {
|
||||
super(action, ComplianceRequirement, idField, client);
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* get compliance requirement by given id
|
||||
* @method
|
||||
* @param {string} id - id of the compliance requirement
|
||||
* @promise {object} return {@link ComplianceRequirement} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id) {
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
client('GET', action + (id ? id + '/' : ''))
|
||||
.then(response => {
|
||||
resolve(new ComplianceRequirementResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* list compliance requirements
|
||||
* @method
|
||||
* @param {object} params - params to list endusers
|
||||
* @param {string} [params.countryIso2] - Document Type ID of the document id.
|
||||
* @param {string} [params.numberType] - Document name of the document if present.
|
||||
* @param {string} [params.phoneNumber] - Description of the document type.
|
||||
* @param {string} [params.endUserType] - Information about the document type.
|
||||
* A combination of countryIso2, numberType, endUserType OR
|
||||
* phoneNumber, endUserType can be used to fetch compliance requirements.
|
||||
*/
|
||||
list(params = {}) {
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('GET', action, params)
|
||||
.then(response => {
|
||||
resolve(new ComplianceRequirementResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
254
lib/resources/endUsers.js
Normal file
254
lib/resources/endUsers.js
Normal file
|
|
@ -0,0 +1,254 @@
|
|||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'EndUser/';
|
||||
const idField = 'endUserId';
|
||||
|
||||
export class EndUsersResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.endUserId = params.endUserId;
|
||||
this.endUserType = params.endUserType;
|
||||
this.name = params.name;
|
||||
this.lastName = params.lastName;
|
||||
this.createdAt = params.createdAt;
|
||||
}
|
||||
}
|
||||
|
||||
export class CreateEndUsersResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.endUserId = params.endUserId;
|
||||
this.endUserType = params.endUserType;
|
||||
this.name = params.name;
|
||||
this.lastName = params.lastName;
|
||||
this.message = params.message;
|
||||
this.createdAt = params.createdAt;
|
||||
}
|
||||
}
|
||||
|
||||
export class ListEndUsersResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.meta = params.meta;
|
||||
this.objects = params.objects;
|
||||
}
|
||||
}
|
||||
|
||||
export class UpdateEndUsersResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.message = params.message;
|
||||
}
|
||||
}
|
||||
|
||||
export class EndUser extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, EndUser, idField, client);
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
this[clientKey] = client;
|
||||
extend(this, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* update end user
|
||||
* @method
|
||||
* @param {object} params - to update end user
|
||||
* @param {string} [params.name] - Name of the endUser if present.
|
||||
* @param {string} [params.last_name] - Last name of the endUser if present.
|
||||
* @param {string} [params.end_user_type] - Type of the end user.
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(params, id) {
|
||||
let client = this[clientKey];
|
||||
let that = this;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action + id + '/', params)
|
||||
.then(response => {
|
||||
extend(that, response.body);
|
||||
extend(that, params);
|
||||
resolve(new UpdateEndUsersResponse(that));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* delete an EndUser
|
||||
* @method
|
||||
* @param {string} id - id to delete
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete() {
|
||||
let client = this[clientKey];
|
||||
let id = this.id;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('DELETE', action + id + '/')
|
||||
.then(() => {
|
||||
resolve(true);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a End Users interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class EndUserInterface extends PlivoResourceInterface {
|
||||
|
||||
constructor(client, data = {}) {
|
||||
super(action, EndUser, idField, client);
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* get an enduser by given id
|
||||
* @method
|
||||
* @param {string} id - id of the endUser
|
||||
* @promise {object} return {@link EndUser} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id) {
|
||||
let errors = validate([
|
||||
{field: 'id', value: id, validators: ['isRequired']}
|
||||
]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
client('GET', action + (id ? id + '/' : ''))
|
||||
.then(response => {
|
||||
resolve(new EndUsersResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* list EndUsers
|
||||
* @method
|
||||
* @param {object} params - params to list endusers
|
||||
* @param {string} [params.name] - Name of the endUser, if present.
|
||||
* @param {string} [params.lastName] - Last name of the endUser, if present.
|
||||
* @param {string} [params.endUserType] - Type of an end user.
|
||||
* @param {integer} [params.offset] - No of value items by which results should be offset
|
||||
* @param {integer} [params.limit] - No of value items by which results should be offset
|
||||
*/
|
||||
list(params = {}) {
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('GET', action, params)
|
||||
.then(response => {
|
||||
resolve(new ListEndUsersResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Create end user
|
||||
* @method
|
||||
* @param {object} params - to update end user
|
||||
* @param {string} [params.name] - Name of the endUser if present.
|
||||
* @param {string} [params.lastName] - Last name of the endUser if present.
|
||||
* @param {string} [params.endUserType] - Type of the end user.
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
create(params = {}) {
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action, params)
|
||||
.then(response => {
|
||||
resolve(new CreateEndUsersResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* update end user
|
||||
* @method
|
||||
* @param {object} params - to update end user
|
||||
* @param {string} [params.name] - Name of the endUser if present.
|
||||
* @param {string} [params.lastName] - Last name of the endUser if present.
|
||||
* @param {string} [params.endUserType] - Type of the end user.
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(id, params) {
|
||||
let errors = validate([{
|
||||
field: 'id',
|
||||
value: id,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
|
||||
return new EndUser(this[clientKey], {
|
||||
id: id
|
||||
}).update(params, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* delete EndUser
|
||||
* @method
|
||||
* @param {string} id - id to delete an enduser with
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(id) {
|
||||
let errors = validate([{
|
||||
field: 'id',
|
||||
value: id,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
|
||||
return new EndUser(this[clientKey], {
|
||||
id: id
|
||||
}).delete();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,168 +1,314 @@
|
|||
import {extend, validate} from '../utils/common.js';
|
||||
import {PlivoResource, PlivoResourceInterface} from '../base';
|
||||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'Endpoint/';
|
||||
const idField = 'endpointId';
|
||||
|
||||
|
||||
export class UpdateEndpointResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.message = params.message;
|
||||
this.alias = params.alias;
|
||||
|
||||
}
|
||||
}
|
||||
export class RetrieveEndpointResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.alias = params.alias;
|
||||
this.application = params.application;
|
||||
this.endpointId = params.endpointId;
|
||||
this.password = params.password;
|
||||
this.resourceUri = params.resourceUri;
|
||||
this.sipRegistered = params.sipRegistered;
|
||||
this.sipUri = params.sipUri;
|
||||
this.subAccount = params.subAccount;
|
||||
this.username = params.username;
|
||||
}
|
||||
}
|
||||
|
||||
export class ListAllEndpointResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.alias = params.alias;
|
||||
this.application = params.application;
|
||||
this.endpointId = params.endpointId;
|
||||
this.password = params.password;
|
||||
this.resourceUri = params.resourceUri;
|
||||
this.sipRegistered = params.sipRegistered;
|
||||
this.sipUri = params.sipUri;
|
||||
this.subAccount = params.subAccount;
|
||||
this.username = params.username;
|
||||
}
|
||||
}
|
||||
|
||||
export class CreateEndpointResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.alias = params.alias;
|
||||
this.apiId = params.apiId;
|
||||
this.endpointId = params.endpointId;
|
||||
this.message = params.message;
|
||||
this.username = params.username;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a Endpoint
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
* Represents a Endpoint
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
|
||||
export class Endpoint extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, Endpoint, idField, client);
|
||||
super(action, Endpoint, idField, client);
|
||||
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* update Endpoint
|
||||
* @method
|
||||
* @param {object} params
|
||||
* @param {string} [params.username] - username to update
|
||||
* @param {string} [params.password] - password to update
|
||||
* @param {string} [params.alias] - alias to update
|
||||
* @param {string} [params.appId] - app id to update
|
||||
* @promise {object} return {@link Endpoint} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(params) {
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.update(params);
|
||||
/**
|
||||
* update Endpoint
|
||||
* @method
|
||||
* @param {object} params
|
||||
* @param {string} [params.username] - username to update
|
||||
* @param {string} [params.password] - password to update
|
||||
* @param {string} [params.alias] - alias to update
|
||||
* @param {string} [params.appId] - app id to update
|
||||
* @promise {object} return {@link Endpoint} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(params, id) {
|
||||
params.isVoiceRequest = 'true';
|
||||
let client = this[clientKey];
|
||||
let that = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action + id + '/', params)
|
||||
.then(response => {
|
||||
extend(that, response.body);
|
||||
if (params.hasOwnProperty('isVoiceRequest')) {
|
||||
delete params.isVoiceRequest;
|
||||
}
|
||||
extend(that, params);
|
||||
resolve(new UpdateEndpointResponse(that));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* delete Endpoint
|
||||
* @method
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
/**
|
||||
* delete Endpoint
|
||||
* @method
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete() {
|
||||
let params = {};
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.delete(params);
|
||||
let params = {};
|
||||
params.isVoiceRequest = 'true';
|
||||
|
||||
let client = this[clientKey];
|
||||
let id = this.id;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('DELETE', action + id + '/', params)
|
||||
.then(() => {
|
||||
resolve(true);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* Represents a Endpoint Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
* Represents a Endpoint Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
|
||||
export class EndpointInterface extends PlivoResourceInterface {
|
||||
|
||||
constructor(client, data = {}) {
|
||||
super(action, Endpoint, idField, client);
|
||||
extend(this, data);
|
||||
super(action, Endpoint, idField, client);
|
||||
extend(this, data);
|
||||
|
||||
this[clientKey] = client;
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Endpoint by given id
|
||||
* @method
|
||||
* @param {string} id - id of endpoint
|
||||
* @promise {object} return {@link Endpoint} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
/**
|
||||
* Get Endpoint by given id
|
||||
* @method
|
||||
* @param {string} id - id of endpoint
|
||||
* @promise {object} return {@link Endpoint} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id) {
|
||||
let params = {};
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.get(id, params);
|
||||
let params = {};
|
||||
params.isVoiceRequest = 'true';
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
client('GET', action + (id ? id + '/' : ''), params)
|
||||
.then(response => {
|
||||
resolve(new RetrieveEndpointResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
list() {
|
||||
let params = {};
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.list(params);
|
||||
let params = {};
|
||||
params.isVoiceRequest = 'true';
|
||||
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('GET', action, params)
|
||||
.then(response => {
|
||||
let objects = [];
|
||||
Object.defineProperty(objects, 'meta', {
|
||||
value: response.body.meta,
|
||||
enumerable: true
|
||||
});
|
||||
response.body.objects.forEach(item => {
|
||||
objects.push(new ListAllEndpointResponse(item, client));
|
||||
});
|
||||
console.log(objects)
|
||||
resolve(objects);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Create Endpoint
|
||||
* @method
|
||||
* @param {string} username - username to create
|
||||
* @param {string} passwowrd - password to create
|
||||
* @param {string} alias - alias to create
|
||||
* @param {string} appId - app id to create
|
||||
* @promise {object} return {@link PlivoGenericResponse} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
/**
|
||||
* Create Endpoint
|
||||
* @method
|
||||
* @param {string} username - username to create
|
||||
* @param {string} passwowrd - password to create
|
||||
* @param {string} alias - alias to create
|
||||
* @param {string} appId - app id to create
|
||||
* @promise {object} return {@link PlivoGenericResponse} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
create(username, password, alias, appId) {
|
||||
let params = {};
|
||||
let params = {};
|
||||
|
||||
let errors = validate([
|
||||
{field: 'username', value: username, validators: ['isRequired']},
|
||||
{field: 'password', value: password, validators: ['isRequired']},
|
||||
{field: 'alias', value: alias, validators: ['isRequired']}
|
||||
]);
|
||||
let errors = validate([{
|
||||
field: 'username',
|
||||
value: username,
|
||||
validators: ['isRequired']
|
||||
},
|
||||
{
|
||||
field: 'password',
|
||||
value: password,
|
||||
validators: ['isRequired']
|
||||
},
|
||||
{
|
||||
field: 'alias',
|
||||
value: alias,
|
||||
validators: ['isRequired']
|
||||
}
|
||||
]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
|
||||
params.username = username;
|
||||
params.password = password;
|
||||
params.alias = alias;
|
||||
if (appId) {
|
||||
params.app_id = appId;
|
||||
}
|
||||
params.isVoiceRequest = 'true';
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action, params)
|
||||
.then(response => {
|
||||
resolve(new CreateEndpointResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
|
||||
params.username = username;
|
||||
params.password = password;
|
||||
params.alias = alias;
|
||||
if (appId) {
|
||||
params.app_id = appId;
|
||||
}
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.create(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* update Endpoint
|
||||
* @method
|
||||
* @param {string} id - id to update
|
||||
* @param {object} params
|
||||
* @param {string} [params.username] - username to update
|
||||
* @param {string} [params.password] - password to update
|
||||
* @param {string} [params.alias] - alias to update
|
||||
* @param {string} [params.appId] - app id to update
|
||||
* @promise {object} return {@link Endpoint} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
/**
|
||||
* update Endpoint
|
||||
* @method
|
||||
* @param {string} id - id to update
|
||||
* @param {object} params
|
||||
* @param {string} [params.username] - username to update
|
||||
* @param {string} [params.password] - password to update
|
||||
* @param {string} [params.alias] - alias to update
|
||||
* @param {string} [params.appId] - app id to update
|
||||
* @promise {object} return {@link Endpoint} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(id, params) {
|
||||
let errors = validate([
|
||||
{field: 'id', value: id, validators: ['isRequired']}
|
||||
]);
|
||||
let errors = validate([{
|
||||
field: 'id',
|
||||
value: id,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new Endpoint(this[clientKey], {
|
||||
id: id
|
||||
}).update(params);
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new Endpoint(this[clientKey], {
|
||||
id: id
|
||||
}).update(params, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* delete Endpoint
|
||||
* @method
|
||||
* @param {string} id - id to delete
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
/**
|
||||
* delete Endpoint
|
||||
* @method
|
||||
* @param {string} id - id to delete
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(id) {
|
||||
let errors = validate([
|
||||
{field: 'id', value: id, validators: ['isRequired']}
|
||||
]);
|
||||
let errors = validate([{
|
||||
field: 'id',
|
||||
value: id,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new Endpoint(this[clientKey], {
|
||||
id: id
|
||||
}).delete();
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new Endpoint(this[clientKey], {
|
||||
id: id
|
||||
}).delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,20 +1,32 @@
|
|||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
import * as _ from "lodash";
|
||||
|
||||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
|
||||
import * as _ from "lodash";
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'Number/'; // unused as it is overridden, only for unit tests
|
||||
const idField = 'OVERRIDDEN';
|
||||
const LOOKUP_API_BASE_URL = 'https://lookup.plivo.com/v1/Number'
|
||||
|
||||
export class LookupResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.phoneNumber = params.phoneNumber;
|
||||
this.country = params.country;
|
||||
this.format = params.format;
|
||||
this.carrier = params.carrier;
|
||||
this.resourceUri = params.resourceUri;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
export class Number extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, Number, idField, client);
|
||||
|
|
@ -46,6 +58,15 @@ export class LookupInterface extends PlivoResourceInterface {
|
|||
overrideUrl: `${LOOKUP_API_BASE_URL}/${number}`,
|
||||
};
|
||||
|
||||
return super.get(number, params);
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('GET', action + '/', params)
|
||||
.then(response => {
|
||||
resolve(new LookupResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,18 +1,52 @@
|
|||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import * as _ from 'lodash';
|
||||
|
||||
import {
|
||||
PlivoGenericResponse,
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
var fs = require('fs');
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'Media/';
|
||||
const idField = 'media_id';
|
||||
|
||||
export class UploadMediaResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.objects = params.objects;
|
||||
}
|
||||
}
|
||||
|
||||
export class RetrieveMediaResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.contentType = params.contentType;
|
||||
this.fileName = params.fileName;
|
||||
this.mediaId = params.mediaId;
|
||||
this.mediaUrl = params.mediaUrl;
|
||||
this.size = params.size;
|
||||
this.uploadTime = params.uploadTime;
|
||||
}
|
||||
}
|
||||
|
||||
export class ListMediaResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.meta = params.meta;
|
||||
this.objects = params.objects;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a Message
|
||||
* @constructor
|
||||
|
|
@ -20,15 +54,15 @@ const idField = 'media_id';
|
|||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class Media extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, Media, idField, client);
|
||||
constructor(client, data = {}) {
|
||||
super(action, Media, idField, client);
|
||||
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
|
||||
extend(this, data);
|
||||
}
|
||||
|
||||
extend(this, data);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Represents a Media Interface
|
||||
|
|
@ -38,61 +72,106 @@ export class Media extends PlivoResource {
|
|||
*/
|
||||
|
||||
export class MediaInterface extends PlivoResourceInterface {
|
||||
constructor(client, data = {}) {
|
||||
super(action, Media, idField, client);
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* Upload Media
|
||||
* @method
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
upload(files) {
|
||||
let errors = validate([{
|
||||
field: 'files',
|
||||
value: files,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
let params = {}
|
||||
params.file = files
|
||||
return super.create(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Media by given id
|
||||
* @method
|
||||
* @param {string} media_id - id of media
|
||||
* @promise {object} return {@link Media} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(media_id) {
|
||||
let errors = validate([{
|
||||
field: 'media_id',
|
||||
value: media_id,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
constructor(client, data = {}) {
|
||||
super(action, Media, idField, client);
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
return super.get(media_id);
|
||||
}
|
||||
/**
|
||||
* Upload Media
|
||||
* @method
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
upload(files) {
|
||||
let errors = validate([{
|
||||
field: 'files',
|
||||
value: files,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
/**
|
||||
* Get All Media Detail
|
||||
* @method
|
||||
* @param {object} params - params to get all media details.
|
||||
* @promise {object[]} returns list of Media Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
list(params) {
|
||||
return super.list(params);
|
||||
}
|
||||
}
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
let params = {}
|
||||
params.file = files
|
||||
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action, params)
|
||||
.then(response => {
|
||||
resolve(new UploadMediaResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Media by given id
|
||||
* @method
|
||||
* @param {string} media_id - id of media
|
||||
* @promise {object} return {@link Media} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(media_id) {
|
||||
let errors = validate([{
|
||||
field: 'media_id',
|
||||
value: media_id,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !media_id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
client('GET', action + (media_id ? media_id + '/' : ''))
|
||||
.then(response => {
|
||||
resolve(new RetrieveMediaResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get All Media Detail
|
||||
* @method
|
||||
* @param {object} params - params to get all media details.
|
||||
* @promise {object[]} returns list of Media Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
list(params) {
|
||||
//return super.list(params);
|
||||
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('GET', action, params)
|
||||
.then(response => {
|
||||
let objects = [];
|
||||
Object.defineProperty(objects, 'meta', {
|
||||
value: response.body.meta,
|
||||
enumerable: true
|
||||
});
|
||||
response.body.objects.forEach(item => {
|
||||
objects.push(new PlivoGenericResponse(item, client));
|
||||
});
|
||||
resolve(objects);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -9,9 +9,85 @@ import {
|
|||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'Message/';
|
||||
const idField = 'messageUuid';
|
||||
let actionKey = Symbol('api action');
|
||||
let klassKey = Symbol('constructor');
|
||||
let idKey = Symbol('id filed');
|
||||
let clientKey = Symbol('make api call');
|
||||
|
||||
export class MessageResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.message = params.message;
|
||||
this.messageUuid = params.messageUuid;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
export class MessageGetResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.errorCode = params.errorCode;
|
||||
this.fromNumber = params.fromNumber;
|
||||
this.messageDirection = params.messageDirection;
|
||||
this.messageState = params.messageState;
|
||||
this.messageTime = params.messageTime;
|
||||
this.messageType = params.messageType;
|
||||
this.messageUuid = params.messageUuid;
|
||||
this.resourceUri = params.resourceUri;
|
||||
this.toNumber = params.toNumber;
|
||||
this.totalAmount = params.totalAmount;
|
||||
this.totalRate = params.totalRate;
|
||||
this.units = params.units;
|
||||
}
|
||||
}
|
||||
|
||||
export class MessageListResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.errorCode = params.errorCode;
|
||||
this.fromNumber = params.fromNumber;
|
||||
this.messageDirection = params.messageDirection;
|
||||
this.messageState = params.messageState;
|
||||
this.messageTime = params.messageTime;
|
||||
this.messageType = params.messageType;
|
||||
this.messageUuid = params.messageUuid;
|
||||
this.resourceUri = params.resourceUri;
|
||||
this.toNumber = params.toNumber;
|
||||
this.totalAmount = params.totalAmount;
|
||||
this.totalRate = params.totalRate;
|
||||
this.units = params.units;
|
||||
}
|
||||
}
|
||||
|
||||
export class MMSMediaResponse {
|
||||
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
let MMSMediaList = []
|
||||
params.objects.forEach(item => {
|
||||
MMSMediaList.push(new MMSMedia(item));
|
||||
});
|
||||
this.objects = MMSMediaList;
|
||||
}
|
||||
}
|
||||
|
||||
export class MMSMedia {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.contentType = params.contentType;
|
||||
this.fileName = params.fileName;
|
||||
this.mediaId = params.mediaId;
|
||||
this.mediaUrl = params.mediaUrl;
|
||||
this.messageUuid = params.messageUuid;
|
||||
this.size = params.size;
|
||||
this.uploadTime = params.uploadTime;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a Message
|
||||
|
|
@ -22,7 +98,8 @@ const idField = 'messageUuid';
|
|||
export class Message extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, Message, idField, client);
|
||||
|
||||
this[actionKey] = action;
|
||||
this[clientKey] = client;
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
};
|
||||
|
|
@ -31,7 +108,18 @@ export class Message extends PlivoResource {
|
|||
}
|
||||
|
||||
listMedia() {
|
||||
return super.executeAction(this.id + '/Media/', 'Get', {});
|
||||
//return super.executeAction(this.id + '/Media/', 'Get', {});
|
||||
let client = this[clientKey];
|
||||
let idField = this[idKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('Get', this[actionKey] + this.id + '/Media/', {})
|
||||
.then(response => {
|
||||
resolve(new MMSMediaResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -48,6 +136,10 @@ export class MessageInterface extends PlivoResourceInterface {
|
|||
super(action, Message, idField, client);
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
this[actionKey] = action;
|
||||
this[klassKey] = Message;
|
||||
this[idKey] = idField;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -65,8 +157,9 @@ export class MessageInterface extends PlivoResourceInterface {
|
|||
* @promise {object} return {@link PlivoGenericMessage} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
send(optionalParams) {
|
||||
return this.create(optionalParams);
|
||||
|
||||
send(src, dst, text, optionalParams) {
|
||||
return this.create(src, dst, text, optionalParams);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -164,7 +257,20 @@ export class MessageInterface extends PlivoResourceInterface {
|
|||
if (powerpackUUID) {
|
||||
params.powerpackUUID = powerpackUUID;
|
||||
}
|
||||
return super.create(params);
|
||||
|
||||
let client = this[clientKey];
|
||||
let idField = this[idKey];
|
||||
let action = this[actionKey] + (this.id ? this.id + '/' : '');
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action, params)
|
||||
.then(response => {
|
||||
resolve(new MessageResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -185,7 +291,43 @@ export class MessageInterface extends PlivoResourceInterface {
|
|||
return errors;
|
||||
}
|
||||
|
||||
return super.get(id);
|
||||
let client = this[clientKey];
|
||||
let action = this[actionKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
client('GET', action + (id ? id + '/' : ''))
|
||||
.then(response => {
|
||||
resolve(new MessageGetResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
list(params) {
|
||||
let client = this[clientKey];
|
||||
let action = this[actionKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('GET', action, params)
|
||||
.then(response => {
|
||||
let objects = [];
|
||||
Object.defineProperty(objects, 'meta', {
|
||||
value: response.body.meta,
|
||||
enumerable: true
|
||||
});
|
||||
response.body.objects.forEach(item => {
|
||||
objects.push(new MessageListResponse(item, client));
|
||||
});
|
||||
resolve(objects);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
listMedia(messageUUID) {
|
||||
|
|
@ -193,5 +335,4 @@ export class MessageInterface extends PlivoResourceInterface {
|
|||
id: messageUUID
|
||||
}).listMedia();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
592
lib/resources/multiPartyCall.js
Normal file
592
lib/resources/multiPartyCall.js
Normal file
|
|
@ -0,0 +1,592 @@
|
|||
import {extend, validate} from '../utils/common.js';
|
||||
import {PlivoResource, PlivoResourceInterface, PlivoSecondaryResource} from '../base';
|
||||
import {
|
||||
validSubAccount,
|
||||
validUrl,
|
||||
validParam,
|
||||
validDateFormat,
|
||||
validRange,
|
||||
validMultipleDestinationNos,
|
||||
isOneAmongStringUrl, multiValidParam
|
||||
} from '../rest/utils.js'
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'MultiPartyCall/';
|
||||
const idField = 'mpcUuid';
|
||||
const secondaryAction = 'Participant/';
|
||||
const secondaryIdField = 'participantUuid';
|
||||
|
||||
export class MPCError extends Error { }
|
||||
|
||||
export class MultiPartyCall extends PlivoResource{
|
||||
constructor(client, data = {}) {
|
||||
super(action, MultiPartyCall, idField, client);
|
||||
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
get(params = {}){
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.executeAction(this.id, 'GET', params);
|
||||
}
|
||||
|
||||
addParticipant(params){
|
||||
if((params.from && params.to) && (params.callUuid)){
|
||||
throw new MPCError('cannot specify callUuid when (from, to) is provided')
|
||||
}
|
||||
if((!params.from && !params.to) && !params.callUuid){
|
||||
throw new MPCError('specify either callUuid or (from, to)')
|
||||
}
|
||||
if((!params.callUuid) && (!params.from || !params.to)){
|
||||
throw new MPCError('specify (from, to) when not adding an existing callUuid to multi party participant')
|
||||
}
|
||||
|
||||
validParam('role', params.role.toLowerCase(), [String], true, ['agent', 'supervisor', 'customer'])
|
||||
|
||||
if(params.from){
|
||||
validParam('from', params.from, [String], false)
|
||||
}
|
||||
|
||||
if(params.to){
|
||||
validParam('to', params.to, [String], false)
|
||||
validMultipleDestinationNos('to', params.to, {role: params.role, delimiter: '<', agentLimit: 20})
|
||||
}
|
||||
|
||||
if(params.callUuid){
|
||||
validParam('callUuid', params.callUuid, [String], false)
|
||||
}
|
||||
|
||||
if(params.callStatusCallbackUrl){
|
||||
validUrl('callStatusCallbackUrl', params.callStatusCallbackUrl, false)
|
||||
}
|
||||
|
||||
if(params.callStatusCallbackMethod){
|
||||
validParam('callStatusCallbackMethod', params.callStatusCallbackMethod.toUpperCase(), [String], false, ['GET', 'POST'])
|
||||
}
|
||||
else{
|
||||
params.callStatusCallbackMethod = 'POST'
|
||||
}
|
||||
|
||||
if(params.sipHeaders){
|
||||
validParam('sipHeaders', params.sipHeaders, [String], false)
|
||||
}
|
||||
|
||||
if(params.confirmKey){
|
||||
validParam('confirmKey', params.confirmKey, [String], false, ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '#', '*'])
|
||||
}
|
||||
|
||||
if(params.confirmKeySoundUrl){
|
||||
validUrl('confirmKeySoundUrl', params.confirmKeySoundUrl, false)
|
||||
}
|
||||
|
||||
if(params.confirmKeySoundMethod){
|
||||
validParam('confirmKeySoundMethod)', params.confirmKeySoundMethod.toUpperCase(), [String], false, ['GET', 'POST'])
|
||||
}
|
||||
else{
|
||||
params.confirmKeySoundMethod = 'GET'
|
||||
}
|
||||
|
||||
if(params.dialMusic){
|
||||
isOneAmongStringUrl('dialMusic', params.dialMusic, false, ['real', 'none'])
|
||||
}
|
||||
else {
|
||||
params.dialMusic = 'Real'
|
||||
}
|
||||
|
||||
if(params.ringTimeout || params.ringTimeout === 0){
|
||||
validRange('ringTimeout', params.ringTimeout, false, 15, 120)
|
||||
}
|
||||
else {
|
||||
params.ringTimeout = 45
|
||||
}
|
||||
|
||||
if(params.maxDuration || params.maxDuration === 0){
|
||||
validRange('maxDuration', params.maxDuration, false, 300, 28800)
|
||||
}
|
||||
else {
|
||||
params.maxDuration = 14400
|
||||
}
|
||||
|
||||
if(params.maxParticipants || params.maxParticipants === 0){
|
||||
validRange('maxParticipants', params.maxParticipants, false, 2, 10)
|
||||
}
|
||||
else {
|
||||
params.maxParticipants = 10
|
||||
}
|
||||
|
||||
if(params.waitMusicUrl){
|
||||
validUrl('waitMusicUrl', params.waitMusicUrl, false)
|
||||
}
|
||||
|
||||
if(params.waitMusicMethod){
|
||||
validParam('waitMusicMethod', params.waitMusicMethod.toUpperCase(), [String], false, ['GET', 'POST'])
|
||||
}
|
||||
else {
|
||||
params.waitMusicMethod = 'GET'
|
||||
}
|
||||
|
||||
if(params.agentHoldMusicUrl){
|
||||
validUrl('agentHoldMusicUrl', params.agentHoldMusicUrl, false)
|
||||
}
|
||||
|
||||
if(params.agentHoldMusicMethod){
|
||||
validParam('agentHoldMusicMethod', params.agentHoldMusicMethod.toUpperCase(), [String], false, ['GET', 'POST'])
|
||||
}
|
||||
else {
|
||||
params.agentHoldMusicMethod = 'GET'
|
||||
}
|
||||
|
||||
if(params.customerHoldMusicUrl){
|
||||
validUrl('customerHoldMusicUrl', params.customerHoldMusicUrl, false)
|
||||
}
|
||||
|
||||
if(params.customerHoldMusicMethod){
|
||||
validParam('customerHoldMusicMethod', params.customerHoldMusicMethod.toUpperCase(), [String], false, ['GET', 'POST'])
|
||||
}
|
||||
else {
|
||||
params.customerHoldMusicMethod = 'GET'
|
||||
}
|
||||
|
||||
if(params.recordingCallbackUrl){
|
||||
validUrl('recordingCallbackUrl', params.recordingCallbackUrl, false)
|
||||
}
|
||||
|
||||
if(params.recordingCallbackMethod){
|
||||
validParam('recordingCallbackMethod', params.recordingCallbackMethod.toUpperCase(), [String], false, ['GET', 'POST'])
|
||||
}
|
||||
else {
|
||||
params.recordingCallbackMethod = 'GET'
|
||||
}
|
||||
|
||||
if(params.statusCallbackUrl){
|
||||
validUrl('statusCallbackUrl', params.statusCallbackUrl, false)
|
||||
}
|
||||
|
||||
if(params.statusCallbackMethod){
|
||||
validParam('statusCallbackMethod', params.statusCallbackMethod.toUpperCase(), [String], false, ['GET', 'POST'])
|
||||
}
|
||||
else {
|
||||
params.statusCallbackMethod = 'GET'
|
||||
}
|
||||
|
||||
if(params.onExitActionUrl){
|
||||
validUrl('onExitActionUrl', params.onExitActionUrl, false)
|
||||
}
|
||||
|
||||
if(params.onExitActionMethod){
|
||||
validParam('statusCallbackMethod', params.statusCallbackMethod.toUpperCase(), [String], false, ['GET', 'POST'])
|
||||
}
|
||||
else {
|
||||
params.onExitActionMethod = 'POST'
|
||||
}
|
||||
|
||||
if(params.record){
|
||||
validParam('record', params.record, [Boolean, String], false)
|
||||
}
|
||||
else {
|
||||
params.record = 'false'
|
||||
}
|
||||
|
||||
if(params.recordFileFormat){
|
||||
validParam('recordFileFormat', params.recordFileFormat.toLowerCase(), [String], false, ['mp3', 'wav'])
|
||||
}
|
||||
else {
|
||||
params.recordFileFormat = 'mp3'
|
||||
}
|
||||
|
||||
if(params.statusCallbackEvents){
|
||||
multiValidParam('statusCallbackEvents', params.statusCallbackEvents.toLowerCase(), [String], false, ['mpc-state-changes', 'participant-state-changes', 'participant-speak-events', 'participant-digit-input-events', 'add-participant-api-events'], true,',')
|
||||
}
|
||||
else {
|
||||
params.statusCallbackEvents = 'mpc-state-changes,participant-state-changes'
|
||||
}
|
||||
|
||||
if(params.stayAlone){
|
||||
validParam('stayAlone', params.stayAlone, [Boolean, String], false)
|
||||
}
|
||||
else {
|
||||
params.stayAlone = 'false'
|
||||
}
|
||||
|
||||
if(params.coachMode){
|
||||
validParam('coachMode', params.coachMode, [Boolean, String], false)
|
||||
}
|
||||
else {
|
||||
params.coachMode = 'true'
|
||||
}
|
||||
|
||||
if(params.mute){
|
||||
validParam('mute', params.mute, [Boolean, String], false)
|
||||
}
|
||||
else {
|
||||
params.mute = 'false'
|
||||
}
|
||||
|
||||
if(params.hold){
|
||||
validParam('hold', params.hold, [Boolean, String], false)
|
||||
}
|
||||
else {
|
||||
params.hold = 'false'
|
||||
}
|
||||
|
||||
if(params.startMpcOnEnter){
|
||||
validParam('startMpcOnEnter', params.startMpcOnEnter, [Boolean, String], false)
|
||||
}
|
||||
else {
|
||||
params.startMpcOnEnter = 'true'
|
||||
}
|
||||
|
||||
if(params.endMpcOnExit){
|
||||
validParam('endMpcOnExit', params.endMpcOnExit, [Boolean, String], false)
|
||||
}
|
||||
else {
|
||||
params.endMpcOnExit = 'false'
|
||||
}
|
||||
|
||||
if(params.relayDTMFInputs){
|
||||
validParam('relayDTMFInputs', params.relayDTMFInputs, [Boolean, String], false)
|
||||
}
|
||||
else {
|
||||
params.relayDTMFInputs = 'false'
|
||||
}
|
||||
|
||||
if(params.enterSound){
|
||||
isOneAmongStringUrl('enterSound', params.enterSound, false, ['beep:1', 'beep:2', 'none'])
|
||||
}
|
||||
else {
|
||||
params.enterSound = 'beep:1'
|
||||
}
|
||||
|
||||
if(params.enterSoundMethod){
|
||||
validParam('enterSoundMethod', params.enterSoundMethod.toUpperCase(), [String], false, ['GET', 'POST'])
|
||||
}
|
||||
else {
|
||||
params.enterSoundMethod = 'GET'
|
||||
}
|
||||
|
||||
if(params.exitSound){
|
||||
isOneAmongStringUrl('exitSound', params.exitSound, false, ['beep:1', 'beep:2', 'none'])
|
||||
}
|
||||
else {
|
||||
params.exitSound = 'beep:2'
|
||||
}
|
||||
|
||||
if(params.exitSoundMethod){
|
||||
validParam('exitSoundMethod', params.exitSoundMethod.toUpperCase(), [String], false, ['GET', 'POST'])
|
||||
}
|
||||
else {
|
||||
params.exitSoundMethod = 'GET'
|
||||
}
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.executeAction(this.id + '/Participant/', 'POST', params)
|
||||
}
|
||||
|
||||
start(){
|
||||
return super.executeAction(this.id + '/', 'POST', {'status' : 'active', 'isVoiceRequest' : 'true'})
|
||||
}
|
||||
|
||||
stop(){
|
||||
return super.delete({'isVoiceRequest' : 'true'})
|
||||
}
|
||||
|
||||
startRecording(params = {}){
|
||||
if(params.fileFormat){
|
||||
validParam('fileFormat', params.fileFormat, [String], false, ['mp3', 'wav'])
|
||||
}
|
||||
else {
|
||||
params.fileFormat = 'mp3'
|
||||
}
|
||||
|
||||
if(params.statusCallbackUrl){
|
||||
validUrl('statusCallbackUrl', params.statusCallbackUrl, false)
|
||||
}
|
||||
|
||||
if(params.statusCallbackMethod){
|
||||
validParam('statusCallbackMethod', params.statusCallbackMethod.toUpperCase(), [String], false, ['GET', 'POST'])
|
||||
}
|
||||
else {
|
||||
params.statusCallbackMethod = 'POST'
|
||||
}
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.executeAction(this.id + '/Record/', 'POST', params)
|
||||
}
|
||||
|
||||
stopRecording(){
|
||||
return super.executeAction(this.id + '/Record/', 'DELETE',{'isVoiceRequest' : 'true'})
|
||||
}
|
||||
|
||||
pauseRecording(){
|
||||
return super.executeAction(this.id + '/Record/Pause/', 'POST',{'isVoiceRequest' : 'true'})
|
||||
}
|
||||
|
||||
resumeRecording(){
|
||||
return super.executeAction(this.id + '/Record/Resume/', 'POST',{'isVoiceRequest' : 'true'})
|
||||
}
|
||||
|
||||
listParticipants(params = {}){
|
||||
if(params.callUuid){
|
||||
validParam('callUuid', params.callUuid, [String], false)
|
||||
}
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.executeAction(this.id + '/Participant/', 'GET', params)
|
||||
}
|
||||
}
|
||||
|
||||
export class MultiPartyCallParticipant extends PlivoSecondaryResource{
|
||||
constructor(client, data = {}) {
|
||||
super(action, MultiPartyCall, idField, secondaryAction, MultiPartyCallParticipant, secondaryIdField, client);
|
||||
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
|
||||
if(secondaryIdField in data){
|
||||
this.secondaryId = data[secondaryIdField];
|
||||
}
|
||||
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
updateParticipant(params = {}){
|
||||
if(params.coachMode){
|
||||
validParam('coachMode', params.coachMode, [Boolean, String], false)
|
||||
}
|
||||
|
||||
if(params.mute){
|
||||
validParam('mute', params.mute, [Boolean, String], false)
|
||||
}
|
||||
|
||||
if(params.hold){
|
||||
validParam('hold', params.hold, [Boolean, String], false)
|
||||
}
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.executeAction(this.id, this.secondaryId, 'POST', params)
|
||||
}
|
||||
|
||||
kickParticipant(){
|
||||
return super.executeAction(this.id, this.secondaryId, 'DELETE',{'isVoiceRequest' : 'true'})
|
||||
}
|
||||
|
||||
getParticipant(){
|
||||
return super.executeAction(this.id, this.secondaryId, 'GET',{'isVoiceRequest' : 'true'})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class MultiPartyCallInterface extends PlivoResourceInterface{
|
||||
constructor(client, data = {}) {
|
||||
super(action, MultiPartyCall, idField, client);
|
||||
extend(this, data);
|
||||
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
makeMpcId(uuid = null, friendlyName = null){
|
||||
if(!uuid && !friendlyName){
|
||||
throw new MPCError('Specify either multi party call friendly name or uuid')
|
||||
}
|
||||
if(uuid && friendlyName){
|
||||
throw new MPCError('Cannot specify both multi party call friendly name or uuid')
|
||||
}
|
||||
let identifier = ''
|
||||
if(uuid){
|
||||
identifier = ['uuid_', uuid]
|
||||
}
|
||||
else{
|
||||
identifier = ['name_', friendlyName]
|
||||
}
|
||||
return identifier;
|
||||
}
|
||||
|
||||
list(params={}) {
|
||||
if(params.subAccount){
|
||||
validSubAccount(params.subAccount);
|
||||
}
|
||||
if(params.friendlyName){
|
||||
validParam('friendlyName', params.friendlyName, [String], false)
|
||||
}
|
||||
if(params.status){
|
||||
validParam('status', params.status.toLowerCase(), [String], false, ['initialized', 'active', 'ended'])
|
||||
}
|
||||
if(params.terminationCauseCode){
|
||||
validParam('terminationCauseCode', params.terminationCauseCode, [Number, String], false)
|
||||
}
|
||||
if(params.end_time__gt){
|
||||
validDateFormat('end_time__gt', params.end_time__gt, false)
|
||||
}
|
||||
if(params.end_time__gte){
|
||||
validDateFormat('end_time__gte', params.end_time__gte, false)
|
||||
}
|
||||
if(params.end_time__lt){
|
||||
validDateFormat('end_time__lt', params.end_time__lt, false)
|
||||
}
|
||||
if(params.end_time__lte){
|
||||
validDateFormat('end_time__lte', params.end_time__lte, false)
|
||||
}
|
||||
if(params.creation_time__gt){
|
||||
validDateFormat('creation_time__gt', params.creation_time__gt, false)
|
||||
}
|
||||
if(params.creation_time__gte){
|
||||
validDateFormat('creation_time__gte', params.creation_time__gte, false)
|
||||
}
|
||||
if(params.creation_time__lt){
|
||||
validDateFormat('creation_time__lt', params.creation_time__lt, false)
|
||||
}
|
||||
if(params.creation_time__lte){
|
||||
validDateFormat('creation_time__lte', params.creation_time__lte, false)
|
||||
}
|
||||
if(params.limit){
|
||||
validRange('limit', params.limit, false, 1, 20)
|
||||
}
|
||||
if(params.offset){
|
||||
validRange('offset', params.offset, false, 0)
|
||||
}
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.list(params);
|
||||
}
|
||||
|
||||
get(uuid = null, friendlyName = null){
|
||||
if(uuid){
|
||||
validParam('uuid', uuid, [String], false)
|
||||
}
|
||||
if(friendlyName){
|
||||
validParam('friendlyName', friendlyName, [String], false)
|
||||
}
|
||||
let mpcId = this.makeMpcId(uuid, friendlyName)
|
||||
return new MultiPartyCall(this[clientKey], {id: mpcId[0] + mpcId[1]}).get();
|
||||
}
|
||||
|
||||
addParticipant(role, params = {}){
|
||||
if(params.uuid){
|
||||
validParam('uuid', params.uuid, [String], false)
|
||||
}
|
||||
if(params.friendlyName){
|
||||
validParam('friendlyName', params.friendlyName, [String], false)
|
||||
}
|
||||
let mpcId = this.makeMpcId(params.uuid, params.friendlyName)
|
||||
delete params.uuid
|
||||
delete params.friendlyName
|
||||
params.role = role
|
||||
return new MultiPartyCall(this[clientKey], {id: mpcId[0] + mpcId[1]}).addParticipant(params)
|
||||
}
|
||||
|
||||
start(uuid = null, friendlyName = null){
|
||||
if(uuid){
|
||||
validParam('uuid', uuid, [String], false)
|
||||
}
|
||||
if(friendlyName){
|
||||
validParam('friendlyName', friendlyName, [String], false)
|
||||
}
|
||||
let mpcId = this.makeMpcId(uuid, friendlyName)
|
||||
return new MultiPartyCall(this[clientKey], {id: mpcId[0] + mpcId[1]}).start()
|
||||
}
|
||||
|
||||
stop(uuid = null, friendlyName = null){
|
||||
if(uuid){
|
||||
validParam('uuid', uuid, [String], false)
|
||||
}
|
||||
if(friendlyName){
|
||||
validParam('friendlyName', friendlyName, [String], false)
|
||||
}
|
||||
let mpcId = this.makeMpcId(uuid, friendlyName)
|
||||
return new MultiPartyCall(this[clientKey], {id: mpcId[0] + mpcId[1]}).stop()
|
||||
}
|
||||
|
||||
startRecording(uuid = null, friendlyName = null, params){
|
||||
if(uuid){
|
||||
validParam('uuid', uuid, [String], false)
|
||||
}
|
||||
if(friendlyName){
|
||||
validParam('friendlyName', friendlyName, [String], false)
|
||||
}
|
||||
let mpcId = this.makeMpcId(uuid, friendlyName)
|
||||
return new MultiPartyCall(this[clientKey], {id: mpcId[0] + mpcId[1]}).startRecording(params)
|
||||
}
|
||||
|
||||
stopRecording(uuid = null, friendlyName = null){
|
||||
if(uuid){
|
||||
validParam('uuid', uuid, [String], false)
|
||||
}
|
||||
if(friendlyName){
|
||||
validParam('friendlyName', friendlyName, [String], false)
|
||||
}
|
||||
let mpcId = this.makeMpcId(uuid, friendlyName)
|
||||
return new MultiPartyCall(this[clientKey], {id: mpcId[0] + mpcId[1]}).stopRecording()
|
||||
}
|
||||
|
||||
pauseRecording(uuid = null, friendlyName = null){
|
||||
if(uuid){
|
||||
validParam('uuid', uuid, [String], false)
|
||||
}
|
||||
if(friendlyName){
|
||||
validParam('friendlyName', friendlyName, [String], false)
|
||||
}
|
||||
let mpcId = this.makeMpcId(uuid, friendlyName)
|
||||
return new MultiPartyCall(this[clientKey], {id: mpcId[0] + mpcId[1]}).pauseRecording()
|
||||
}
|
||||
|
||||
resumeRecording(uuid = null, friendlyName = null){
|
||||
if(uuid){
|
||||
validParam('uuid', uuid, [String], false)
|
||||
}
|
||||
if(friendlyName){
|
||||
validParam('friendlyName', friendlyName, [String], false)
|
||||
}
|
||||
let mpcId = this.makeMpcId(uuid, friendlyName)
|
||||
return new MultiPartyCall(this[clientKey], {id: mpcId[0] + mpcId[1]}).resumeRecording()
|
||||
}
|
||||
|
||||
listParticipants(uuid = null, friendlyName = null, params){
|
||||
if(uuid){
|
||||
validParam('uuid', uuid, [String], false)
|
||||
}
|
||||
if(friendlyName){
|
||||
validParam('friendlyName', friendlyName, [String], false)
|
||||
}
|
||||
let mpcId = this.makeMpcId(uuid, friendlyName)
|
||||
return new MultiPartyCall(this[clientKey], {id: mpcId[0] + mpcId[1]}).listParticipants(params)
|
||||
}
|
||||
|
||||
updateParticipant(participantId, uuid= null, friendlyName = null, params){
|
||||
validParam('participantId', participantId, [String, Number], true)
|
||||
if(uuid){
|
||||
validParam('uuid', uuid, [String], false)
|
||||
}
|
||||
if(friendlyName){
|
||||
validParam('friendlyName', friendlyName, [String], false)
|
||||
}
|
||||
let mpcId = this.makeMpcId(uuid, friendlyName)
|
||||
return new MultiPartyCallParticipant(this[clientKey], {id: mpcId[0] + mpcId[1], secondaryId: participantId}).updateParticipant(params)
|
||||
}
|
||||
|
||||
kickParticipant(participantId, uuid = null, friendlyName = null){
|
||||
validParam('participantId', participantId, [String, Number], true)
|
||||
if(uuid){
|
||||
validParam('uuid', uuid, [String], false)
|
||||
}
|
||||
if(friendlyName){
|
||||
validParam('friendlyName', friendlyName, [String], false)
|
||||
}
|
||||
let mpcId = this.makeMpcId(uuid, friendlyName)
|
||||
return new MultiPartyCallParticipant(this[clientKey], {id: mpcId[0] + mpcId[1], secondaryId: participantId}).kickParticipant()
|
||||
}
|
||||
|
||||
getParticipant(participantId, uuid = null, friendlyName = null){
|
||||
validParam('participantId', participantId, [String, Number], true)
|
||||
if(uuid){
|
||||
validParam('uuid', uuid, [String], false)
|
||||
}
|
||||
if(friendlyName){
|
||||
validParam('friendlyName', friendlyName, [String], false)
|
||||
}
|
||||
let mpcId = this.makeMpcId(uuid, friendlyName)
|
||||
return new MultiPartyCallParticipant(this[clientKey], {id: mpcId[0] + mpcId[1], secondaryId: participantId}).getParticipant()
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,10 +1,59 @@
|
|||
import {extend, validate} from '../utils/common.js';
|
||||
import {PlivoResource, PlivoResourceInterface} from '../base';
|
||||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'Number/';
|
||||
const idField = 'number';
|
||||
|
||||
|
||||
export class BuyNumberResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.numbers = params.numbers;
|
||||
this.status = params.status;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
export class SearchNumberResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.number = params.number;
|
||||
this.prefix = params.prefix;
|
||||
this.city = params.city;
|
||||
this.country = params.country;
|
||||
this.region = params.region;
|
||||
this.rate_center = params.rate_center;
|
||||
this.lata = params.lata;
|
||||
this.type = params.type;
|
||||
this.sub_type = params.sub_type;
|
||||
this.setup_rate = params.setup_rate;
|
||||
this.monthly_rental_rate = params.monthly_rental_rate;
|
||||
this.sms_enabled = params.sms_enabled;
|
||||
this.sms_rate = params.sms_rate;
|
||||
this.voice_enabled = params.voice_enabled;
|
||||
this.voice_rate = params.voice_rate;
|
||||
this.restriction = params.restriction;
|
||||
this.restriction_text = params.restriction_text;
|
||||
this.resource_uri = params.resource_uri;
|
||||
}
|
||||
}
|
||||
|
||||
export class UpdateNumberResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.message = params.message;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a PhoneNumber
|
||||
* @constructor
|
||||
|
|
@ -12,29 +61,29 @@ const idField = 'number';
|
|||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class PhoneNumber extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super('PhoneNumber/', PhoneNumber, idField, client);
|
||||
constructor(client, data = {}) {
|
||||
super('PhoneNumber/', PhoneNumber, idField, client);
|
||||
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* Buy Phone Number
|
||||
* @method
|
||||
* @param {string} appId - app id
|
||||
* @promise {@link PlivoGenericResponse} return PlivoGenericResponse Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
buy(appId) {
|
||||
return new PhoneNumberInterface(this[clientKey], {
|
||||
id: this.id
|
||||
}).buy(appId);
|
||||
}
|
||||
/**
|
||||
* Buy Phone Number
|
||||
* @method
|
||||
* @param {string} appId - app id
|
||||
* @promise {@link PlivoGenericResponse} return PlivoGenericResponse Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
buy(appId) {
|
||||
return new PhoneNumberInterface(this[clientKey], {
|
||||
id: this.id
|
||||
}).buy(appId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -45,27 +94,37 @@ export class PhoneNumber extends PlivoResource {
|
|||
* @param {string} [data.test] - test data
|
||||
*/
|
||||
export class PhoneNumberInterface extends PlivoResourceInterface {
|
||||
constructor(client, data = {}) {
|
||||
super('PhoneNumber/', PhoneNumber, idField, client);
|
||||
constructor(client, data = {}) {
|
||||
super('PhoneNumber/', PhoneNumber, idField, client);
|
||||
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* Buy Phone Number
|
||||
* @method
|
||||
* @param {string} appId - app id
|
||||
* @promise {@link PlivoGenericResponse} return PlivoGenericResponse Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
buy(appId) {
|
||||
let params = {};
|
||||
if (appId) {
|
||||
params.app_id = appId;
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* Buy Phone Number
|
||||
* @method
|
||||
* @param {string} appId - app id
|
||||
* @promise {@link PlivoGenericResponse} return PlivoGenericResponse Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
buy(number, appId) {
|
||||
let params = {};
|
||||
if (appId) {
|
||||
params.app_id = appId;
|
||||
}
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', 'PhoneNumber/' + number + '/', params)
|
||||
.then(response => {
|
||||
resolve(new BuyNumberResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
return super.create(params);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -75,38 +134,68 @@ export class PhoneNumberInterface extends PlivoResourceInterface {
|
|||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class NumberResource extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, NumberResource, idField, client);
|
||||
constructor(client, data = {}) {
|
||||
super(action, NumberResource, idField, client);
|
||||
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
extend(this, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unrent Number
|
||||
* @method
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
unrent() {
|
||||
return super.delete();
|
||||
}
|
||||
/**
|
||||
* Unrent Number
|
||||
* @method
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
unrent(number) {
|
||||
let client = this[clientKey];
|
||||
let action = 'Number/';
|
||||
return new Promise((resolve, reject) => {
|
||||
client('DELETE', action + number + '/')
|
||||
.then(() => {
|
||||
resolve(true);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Update Number
|
||||
* @method
|
||||
* @param {object} params
|
||||
* @param {string} [params.appId] - app id
|
||||
* @param {string} [params.subAccount] - auth_id of subaccount
|
||||
* @param {string} [params.alias] - textual name of number
|
||||
* @promise {@link NumberResource} return NumberResource Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(number, params) {
|
||||
let client = this[clientKey];
|
||||
let action = 'Number/';
|
||||
let that = this;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action + number + '/', params)
|
||||
.then(response => {
|
||||
extend(that, response.body);
|
||||
if (params.hasOwnProperty('isVoiceRequest')) {
|
||||
delete params.isVoiceRequest;
|
||||
}
|
||||
extend(that, params);
|
||||
resolve(new UpdateNumberResponse(that));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Update Number
|
||||
* @method
|
||||
* @param {object} params
|
||||
* @param {string} [params.appId] - app id
|
||||
* @param {string} [params.subAccount] - auth_id of subaccount
|
||||
* @param {string} [params.alias] - textual name of number
|
||||
* @promise {@link NumberResource} return NumberResource Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(params) {
|
||||
return super.update(params);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -117,125 +206,143 @@ export class NumberResource extends PlivoResource {
|
|||
*/
|
||||
export class NumberInterface extends PlivoResourceInterface {
|
||||
|
||||
constructor(client) {
|
||||
super(action, NumberResource, idField, client);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* Buy Phone Number
|
||||
* @method
|
||||
* @param {string} number - number to buy
|
||||
* @param {string} appId - app id
|
||||
* @promise {@link PlivoGenericResponse} return PlivoGenericResponse Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
buy(number, appId) {
|
||||
let errors = validate([
|
||||
{field: 'number', value: number, validators: ['isRequired']}
|
||||
]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new PhoneNumber(this[clientKey], {
|
||||
id: number
|
||||
}).buy(appId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add own number from carrier
|
||||
* @method
|
||||
* @param {string} numbers - A comma separated list of numbers that need to be added for the carrier.
|
||||
* @param {string} carrier - The carrier_id of the IncomingCarrier that the number is associated with.
|
||||
* @param {string} region - region that is associated with the Number
|
||||
* @param {string} optionaParams - optional params
|
||||
* @promise {@link PlivoGenericResponse} return PlivoGenericResponse Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
addOwnNumber(numbers, carrier, region, optionalParams) {
|
||||
let errors = validate([
|
||||
{field: 'numbers', value: numbers, validators: ['isRequired']},
|
||||
{field: 'carrier', value: carrier, validators: ['isRequired']},
|
||||
{field: 'region', value: region, validators: ['isRequired']}
|
||||
]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
let params = optionalParams || {};
|
||||
|
||||
params.numbers = numbers;
|
||||
params.carrier = carrier;
|
||||
params.region = region;
|
||||
|
||||
return super.create(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add own number from carrier
|
||||
* @method
|
||||
* @param {string} countryISO - The ISO code A2 of the country
|
||||
* @param {string} optionaParams - optional params
|
||||
* @promise {@link PhoneNumberInterface} return PhoneNumbers Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
search(countryISO, optionalParams) {
|
||||
let errors = validate([
|
||||
{field: 'country_iso', value: countryISO, validators: ['isRequired']}
|
||||
]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
constructor(client) {
|
||||
super(action, NumberResource, idField, client);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
let params = optionalParams || {};
|
||||
params.country_iso = countryISO;
|
||||
return new PhoneNumberInterface(this[clientKey])
|
||||
.list(params);
|
||||
}
|
||||
/**
|
||||
* Buy Phone Number
|
||||
* @method
|
||||
* @param {string} number - number to buy
|
||||
* @param {string} appId - app id
|
||||
* @promise {@link PlivoGenericResponse} return PlivoGenericResponse Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
buy(number, appId) {
|
||||
let errors = validate([{
|
||||
field: 'number',
|
||||
value: number,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
/**
|
||||
* Update Number
|
||||
* @method
|
||||
* @param {string} number - number to update
|
||||
* @param {object} params
|
||||
* @param {string} [params.appId] - app id
|
||||
* @param {string} [params.subAccount] - auth_id of subaccount
|
||||
* @param {string} [params.alias] - textual name of number
|
||||
* @promise {@link NumberResource} return NumberResource Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(number, params) {
|
||||
let errors = validate([
|
||||
{field: 'number', value: number, validators: ['isRequired']}
|
||||
]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new PhoneNumber(this[clientKey], {
|
||||
id: number
|
||||
}).buy(number, appId);
|
||||
}
|
||||
return new NumberResource(this[clientKey], {
|
||||
id: number
|
||||
}).update(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unrent Number
|
||||
* @method
|
||||
* @param {string} number - number to unrent
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
unrent(number) {
|
||||
let errors = validate([
|
||||
{field: 'number', value: number, validators: ['isRequired']}
|
||||
]);
|
||||
/**
|
||||
* Add own number from carrier
|
||||
* @method
|
||||
* @param {string} numbers - A comma separated list of numbers that need to be added for the carrier.
|
||||
* @param {string} carrier - The carrier_id of the IncomingCarrier that the number is associated with.
|
||||
* @param {string} region - region that is associated with the Number
|
||||
* @param {string} optionaParams - optional params
|
||||
* @promise {@link PlivoGenericResponse} return PlivoGenericResponse Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
addOwnNumber(numbers, carrier, region, optionalParams) {
|
||||
let errors = validate([{
|
||||
field: 'numbers',
|
||||
value: numbers,
|
||||
validators: ['isRequired']
|
||||
},
|
||||
{
|
||||
field: 'carrier',
|
||||
value: carrier,
|
||||
validators: ['isRequired']
|
||||
},
|
||||
{
|
||||
field: 'region',
|
||||
value: region,
|
||||
validators: ['isRequired']
|
||||
}
|
||||
]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
let params = optionalParams || {};
|
||||
|
||||
params.numbers = numbers;
|
||||
params.carrier = carrier;
|
||||
params.region = region;
|
||||
|
||||
return super.create(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add own number from carrier
|
||||
* @method
|
||||
* @param {string} countryISO - The ISO code A2 of the country
|
||||
* @param {string} optionaParams - optional params
|
||||
* @promise {@link PhoneNumberInterface} return PhoneNumbers Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
search(countryISO, optionalParams) {
|
||||
let errors = validate([{
|
||||
field: 'country_iso',
|
||||
value: countryISO,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
|
||||
let params = optionalParams || {};
|
||||
params.country_iso = countryISO;
|
||||
return new PhoneNumberInterface(this[clientKey]).list(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update Number
|
||||
* @method
|
||||
* @param {string} number - number to update
|
||||
* @param {object} params
|
||||
* @param {string} [params.appId] - app id
|
||||
* @param {string} [params.subAccount] - auth_id of subaccount
|
||||
* @param {string} [params.alias] - textual name of number
|
||||
* @promise {@link NumberResource} return NumberResource Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(number, params) {
|
||||
let errors = validate([{
|
||||
field: 'number',
|
||||
value: number,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new NumberResource(this[clientKey], {
|
||||
id: number
|
||||
}).update(number, params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unrent Number
|
||||
* @method
|
||||
* @param {string} number - number to unrent
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
unrent(number) {
|
||||
let errors = validate([{
|
||||
field: 'number',
|
||||
value: number,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new NumberResource(this[clientKey], {
|
||||
id: number
|
||||
}).unrent(number);
|
||||
}
|
||||
return new NumberResource(this[clientKey], {
|
||||
id: number
|
||||
}).unrent();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,44 @@
|
|||
import { extend, validate } from '../utils/common.js';
|
||||
import { PlivoResource, PlivoResourceInterface } from '../base';
|
||||
import { PhloMultiPartyCall, PhloMultiPartyCallInterface } from "../resources/phloMultipartyCall";
|
||||
import * as _ from "lodash";
|
||||
|
||||
import {
|
||||
PhloMultiPartyCall,
|
||||
PhloMultiPartyCallInterface
|
||||
} from "../resources/phloMultipartyCall";
|
||||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'phlo/';
|
||||
const idField = 'phloUuid';
|
||||
|
||||
|
||||
export class RunPHLOResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.phloId = params.phloId;
|
||||
this.message = params.message;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
export class RetrievePHLOResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.phloId = params.phloId;
|
||||
this.name = params.name;
|
||||
this.createdOn = params.createdOn;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a Phlo
|
||||
* @constructor
|
||||
|
|
@ -14,39 +46,58 @@ const idField = 'phloUuid';
|
|||
* @param {object} [data] - data of phlo
|
||||
*/
|
||||
export class Phlo extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, Phlo, idField, client);
|
||||
extend(this, data);
|
||||
constructor(client, data = {}) {
|
||||
super(action, Phlo, idField, client);
|
||||
extend(this, data);
|
||||
this.client = client;
|
||||
|
||||
this.client = client;
|
||||
// Define multiparty call getters
|
||||
let item = this;
|
||||
this.multiPartyCall = function(nodeId) {
|
||||
let dd = new PhloMultiPartyCall(client, {
|
||||
phloId: item.phloId,
|
||||
nodeId: nodeId
|
||||
});
|
||||
return dd;
|
||||
};
|
||||
|
||||
// Define multiparty call getters
|
||||
let item = this;
|
||||
this.multiPartyCall = function (nodeId) {
|
||||
let dd = new PhloMultiPartyCall(client, { phloId: item.phloId, nodeId: nodeId });
|
||||
return dd;
|
||||
};
|
||||
this.multiPartyCall.get = function(nodeId) {
|
||||
let dd = new PhloMultiPartyCallInterface(client, {
|
||||
phloId: item.phloId,
|
||||
nodeId: nodeId
|
||||
});
|
||||
return dd.get(item.phloId, nodeId);
|
||||
}
|
||||
|
||||
this[clientKey] = client;
|
||||
|
||||
this.multiPartyCall.get = function (nodeId) {
|
||||
let dd = new PhloMultiPartyCallInterface(client, { phloId: item.phloId, nodeId: nodeId });
|
||||
return dd.get(item.phloId, nodeId);
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* run phlo
|
||||
* @method
|
||||
* @promise {Boolean} return true if phlo is complete
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
run(params) {
|
||||
|
||||
/**
|
||||
* run phlo
|
||||
* @method
|
||||
* @promise {Boolean} return true if phlo is complete
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
run(params) {
|
||||
//Url for phlo running
|
||||
// https://phlorunner.plivo.com/v1/account/{AUTH_ID}/phlo/{PHLO_ID}
|
||||
let action = 'account/' + this.authId + '/phlo/' + this.phloId;
|
||||
let client = this[clientKey];
|
||||
action = action == null ? this[actionKey] : action;
|
||||
|
||||
//Url for phlo running
|
||||
// https://phlorunner.plivo.com/v1/account/{AUTH_ID}/phlo/{PHLO_ID}
|
||||
let action = 'account/' + this.authId + '/phlo/' + this.phloId;
|
||||
return super.executeAction(action, 'POST', params, '');
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', action, params)
|
||||
.then(response => {
|
||||
resolve(new RunPHLOResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -58,37 +109,52 @@ export class Phlo extends PlivoResource {
|
|||
*/
|
||||
export class PhloInterface extends PlivoResourceInterface {
|
||||
|
||||
constructor(client, data = {}) {
|
||||
super(action, Phlo, idField, client);
|
||||
extend(this, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get A Phlo Detail
|
||||
* @method
|
||||
* @param {string} id - phlo uuid to get information of.
|
||||
* @promise {object} returns Phlo Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
get(id) {
|
||||
|
||||
//Validate id first
|
||||
let errors = validate([{
|
||||
field: 'id',
|
||||
value: id,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
constructor(client, data = {}) {
|
||||
super(action, Phlo, idField, client);
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
let params = {
|
||||
phlo_id: id
|
||||
};
|
||||
/**
|
||||
* Get A Phlo Detail
|
||||
* @method
|
||||
* @param {string} id - phlo uuid to get information of.
|
||||
* @promise {object} returns Phlo Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
get(id) {
|
||||
|
||||
// Url pattern for getting phlo resource by id
|
||||
// https://phlorunner.plivo.com/v1/phlo/{phlo_id}
|
||||
return super.get(id, params);
|
||||
}
|
||||
}
|
||||
//Validate id first
|
||||
let errors = validate([{
|
||||
field: 'id',
|
||||
value: id,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
|
||||
let params = {
|
||||
phlo_id: id
|
||||
};
|
||||
|
||||
// Url pattern for getting phlo resource by id
|
||||
// https://phlorunner.plivo.com/v1/phlo/{phlo_id}
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
|
||||
client('GET', action + (id ? id + '/' : ''), params)
|
||||
.then(response => {
|
||||
resolve(new RetrievePHLOResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,11 @@
|
|||
import { extend, validate } from '../utils/common.js';
|
||||
import { PlivoResource, PlivoResourceInterface } from '../base';
|
||||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'Phlo/';
|
||||
|
|
@ -11,6 +17,14 @@ const idField = 'phloUuid';
|
|||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of phlo
|
||||
*/
|
||||
|
||||
export class UpdateMemberResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.error = params.error;
|
||||
}
|
||||
}
|
||||
export class PhloMultiPartyCallMember extends PlivoResource {
|
||||
|
||||
constructor(client, data = {}) {
|
||||
|
|
@ -51,7 +65,16 @@ export class PhloMultiPartyCallMember extends PlivoResource {
|
|||
// https://phlorunner.plivo.com/v1/phlo/{PHLO_ID}/multi_party_call/{NODE_ID}/members/{MemberAddress}
|
||||
let task = this.action + this.memberAddress;
|
||||
|
||||
return super.executeAction(task, 'POST', params, '');
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', task, params)
|
||||
.then(response => {
|
||||
resolve(new UpdateMemberResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -79,7 +102,11 @@ export class PhloMultiPartyCallMemberInterface extends PlivoResourceInterface {
|
|||
return errors;
|
||||
}
|
||||
|
||||
return new PhloMultiPartyCallMember(this.client, { phloId: phloId, nodeId: nodeId, memberAddress: memberAddress });
|
||||
return new PhloMultiPartyCallMember(this.client, {
|
||||
phloId: phloId,
|
||||
nodeId: nodeId,
|
||||
memberAddress: memberAddress
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +1,40 @@
|
|||
import { extend, validate } from '../utils/common.js';
|
||||
import { PlivoResource, PlivoResourceInterface } from '../base';
|
||||
import { PhloMultiPartyCallMemberInterface, PhloMultiPartyCallMember } from './phloMultiPartyCallMember';
|
||||
import {
|
||||
PhloMultiPartyCallMember,
|
||||
PhloMultiPartyCallMemberInterface
|
||||
} from './phloMultiPartyCallMember';
|
||||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const idField = 'nodeId';
|
||||
|
||||
|
||||
export class UpdateMultipartyCallResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.error = params.error;
|
||||
}
|
||||
}
|
||||
|
||||
export class RetrieveMultipartyCallResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.nodeId = params.nodeId;
|
||||
this.phloId = params.phloId;
|
||||
this.name = params.name;
|
||||
this.nodeType = params.nodeType;
|
||||
this.createdOn = params.createdOn;
|
||||
}
|
||||
}
|
||||
|
||||
export class PhloMultiPartyCall extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
let action = 'phlo/' + data.phloId + '/multi_party_call/';
|
||||
|
|
@ -12,16 +42,25 @@ export class PhloMultiPartyCall extends PlivoResource {
|
|||
extend(this, data);
|
||||
this.action = action;
|
||||
this.client = client;
|
||||
this[clientKey] = client;
|
||||
|
||||
// Define member getters
|
||||
let item = this;
|
||||
this.member = function (memberAddress) {
|
||||
let dd = new PhloMultiPartyCallMember(client, { phloId: item.phloId, nodeId: item.nodeId, memberAddress: memberAddress });
|
||||
this.member = function(memberAddress) {
|
||||
let dd = new PhloMultiPartyCallMember(client, {
|
||||
phloId: item.phloId,
|
||||
nodeId: item.nodeId,
|
||||
memberAddress: memberAddress
|
||||
});
|
||||
return dd;
|
||||
};
|
||||
|
||||
this.member.get = function (memberAddress) {
|
||||
let dd = new PhloMultiPartyCallMemberInterface(client, { phloId: item.phloId, nodeId: item.nodeId, memberAddress: memberAddress });
|
||||
this.member.get = function(memberAddress) {
|
||||
let dd = new PhloMultiPartyCallMemberInterface(client, {
|
||||
phloId: item.phloId,
|
||||
nodeId: item.nodeId,
|
||||
memberAddress: memberAddress
|
||||
});
|
||||
return dd.get(item.phloId, item.nodeId, memberAddress);
|
||||
}
|
||||
|
||||
|
|
@ -53,7 +92,6 @@ export class PhloMultiPartyCall extends PlivoResource {
|
|||
action: action
|
||||
};
|
||||
|
||||
|
||||
// Url pattern for mp call update
|
||||
// https://phlorunnner.plivo.com/v1/phlo/{phlo_id}/{node_type}/{node_id}
|
||||
let task = this.action + this.nodeId;
|
||||
|
|
@ -65,8 +103,16 @@ export class PhloMultiPartyCall extends PlivoResource {
|
|||
params.trigger_source = triggerSource;
|
||||
}
|
||||
|
||||
return super.executeAction(task, 'POST', params, '');
|
||||
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('POST', task, params)
|
||||
.then(response => {
|
||||
resolve(new UpdateMultipartyCallResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -78,15 +124,16 @@ export class PhloMultiPartyCallInterface extends PlivoResourceInterface {
|
|||
let action = 'phlo/' + data.phloId + '/multi_party_call/';
|
||||
super(action, PhloMultiPartyCall, idField, client);
|
||||
extend(this, data);
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get A Phlo Detail
|
||||
* @method
|
||||
* @param {string} id - phlo uuid to get information of.
|
||||
* @promise {object} returns Phlo Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
* Get A Phlo Detail
|
||||
* @method
|
||||
* @param {string} id - phlo uuid to get information of.
|
||||
* @promise {object} returns Phlo Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
get(phloId, id) {
|
||||
|
||||
//Validate id first
|
||||
|
|
@ -109,8 +156,18 @@ export class PhloMultiPartyCallInterface extends PlivoResourceInterface {
|
|||
|
||||
// Url pattern for getting phlo resource by id
|
||||
// https://phlorunner.plivo.com/v1/phlo/{phlo_id}
|
||||
// console.log('get multi party call with ', id, params);
|
||||
return super.get(id, params);
|
||||
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
client('GET', action + (id ? id + '/' : ''), params)
|
||||
.then(response => {
|
||||
resolve(new RetrieveMultipartyCallResponse(client, response.body));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,66 +1,102 @@
|
|||
import {extend, validate} from '../utils/common.js';
|
||||
import {PlivoResource, PlivoResourceInterface} from '../base';
|
||||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'Pricing/';
|
||||
const idField = 'countryIso';
|
||||
|
||||
/**
|
||||
* Represents a Pricing
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
* Represents a Pricing
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
|
||||
export class PricingResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.apiId = params.apiId;
|
||||
this.country = params.country;
|
||||
this.countryCode = params.countryCode;
|
||||
this.countryIso = params.countryIso;
|
||||
this.message = params.message;
|
||||
this.mms = params.mms;
|
||||
this.phoneNumbers = params.phoneNumbers;
|
||||
this.voice = params.voice;
|
||||
|
||||
}
|
||||
}
|
||||
export class Pricing extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, Pricing, idField, client);
|
||||
extend(this, data);
|
||||
super(action, Pricing, idField, client);
|
||||
extend(this, data);
|
||||
this[clientKey] = client
|
||||
}
|
||||
|
||||
/**
|
||||
* Get pricings by country
|
||||
* @method
|
||||
* @promise {object} return {@link PlivoGenericResponse} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
|
||||
/**
|
||||
* Get pricings by country
|
||||
* @method
|
||||
* @promise {object} return {@link PlivoGenericResponse} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get() {
|
||||
let params = {
|
||||
country_iso: this.id
|
||||
};
|
||||
return super.executeAction('', 'GET', params);
|
||||
let params = {
|
||||
country_iso: this.id
|
||||
};
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
client('GET', action, params)
|
||||
.then(response => {
|
||||
resolve(new PricingResponse(response.body, idField));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Represents a Pricing Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
* Represents a Pricing Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class PricingInterface extends PlivoResourceInterface {
|
||||
constructor(client, data = {}) {
|
||||
super(action, Pricing, idField, client);
|
||||
extend(this, data);
|
||||
super(action, Pricing, idField, client);
|
||||
extend(this, data);
|
||||
|
||||
this[clientKey] = client;
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get pricings by country
|
||||
* @method
|
||||
* @param {string} countryISO - country iso to get pricings
|
||||
* @promise {object} return {@link PlivoGenericResponse} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
/**
|
||||
* Get pricings by country
|
||||
* @method
|
||||
* @param {string} countryISO - country iso to get pricings
|
||||
* @promise {object} return {@link PlivoGenericResponse} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(countryISO) {
|
||||
let errors = validate([
|
||||
{field: 'country_iso', value: countryISO, validators: ['isRequired']}
|
||||
]);
|
||||
let errors = validate([{
|
||||
field: 'country_iso',
|
||||
value: countryISO,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new Pricing(this[clientKey], {
|
||||
id: countryISO
|
||||
}).get();
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new Pricing(this[clientKey], {
|
||||
id: countryISO
|
||||
}).get();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,73 +1,143 @@
|
|||
import {extend, validate} from '../utils/common.js';
|
||||
import {PlivoResource, PlivoResourceInterface} from '../base';
|
||||
import {
|
||||
PlivoResource,
|
||||
PlivoResourceInterface
|
||||
} from '../base';
|
||||
import {
|
||||
extend,
|
||||
validate
|
||||
} from '../utils/common.js';
|
||||
|
||||
const clientKey = Symbol();
|
||||
const action = 'Recording/';
|
||||
const idField = 'recordingId';
|
||||
|
||||
|
||||
export class RetrieveRecordingResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.addTime = params.addTime;
|
||||
this.apiId = params.apiId;
|
||||
this.callUuid = params.callUuid;
|
||||
this.conferenceName = params.conferenceName;
|
||||
this.recordingDurationMs = params.recordingDurationMs;
|
||||
this.recordingEndMs = params.recordingEndMs;
|
||||
this.recordingFormat = params.recordingFormat;
|
||||
this.recordingId = params.recordingId;
|
||||
this.recordingStartMs = params.recordingStartMs;
|
||||
this.recordingType = params.recordingType;
|
||||
this.recordingUrl = params.recordingUrl;
|
||||
this.resourceUri = params.resourceUri;
|
||||
}
|
||||
}
|
||||
|
||||
export class ListRecordingResponse {
|
||||
constructor(params) {
|
||||
params = params || {};
|
||||
this.addTime = params.addTime;
|
||||
this.apiId = params.apiId;
|
||||
this.callUuid = params.callUuid;
|
||||
this.conferenceName = params.conferenceName;
|
||||
this.recordingDurationMs = params.recordingDurationMs;
|
||||
this.recordingEndMs = params.recordingEndMs;
|
||||
this.recordingFormat = params.recordingFormat;
|
||||
this.recordingId = params.recordingId;
|
||||
this.recordingStartMs = params.recordingStartMs;
|
||||
this.recordingType = params.recordingType;
|
||||
this.recordingUrl = params.recordingUrl;
|
||||
this.resourceUri = params.resourceUri;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a Recording
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
* Represents a Recording
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class Recording extends PlivoResource {
|
||||
constructor(client, data = {}) {
|
||||
super(action, Recording, idField, client);
|
||||
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
extend(this, data);
|
||||
super(action, Recording, idField, client);
|
||||
this[clientKey] = client
|
||||
|
||||
if (idField in data) {
|
||||
this.id = data[idField];
|
||||
}
|
||||
extend(this, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete recording
|
||||
* @method
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete() {
|
||||
let params = {};
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.delete(params);
|
||||
/**
|
||||
* Delete recording
|
||||
* @method
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(id) {
|
||||
let params = {};
|
||||
params.isVoiceRequest = 'true';
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('DELETE', action + id + '/', params)
|
||||
.then(() => {
|
||||
resolve(true);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a Recording Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
* Represents a Recording Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class RecordingInterface extends PlivoResourceInterface {
|
||||
|
||||
constructor(client, data = {}) {
|
||||
super(action, Recording, idField, client);
|
||||
extend(this, data);
|
||||
super(action, Recording, idField, client);
|
||||
extend(this, data);
|
||||
|
||||
this[clientKey] = client;
|
||||
this[clientKey] = client;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get recording by id
|
||||
* @method
|
||||
* @param {string} id - id to get recording information
|
||||
* @promise {object} return {@link Pricing} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
/**
|
||||
* Get recording by id
|
||||
* @method
|
||||
* @param {string} id - id to get recording information
|
||||
* @promise {object} return {@link Pricing} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id) {
|
||||
let errors = validate([
|
||||
{field: 'id', value: id, validators: ['isRequired']}
|
||||
]);
|
||||
let errors = validate([{
|
||||
field: 'id',
|
||||
value: id,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
let params = {};
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.get(id, params);
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
let params = {};
|
||||
params.isVoiceRequest = 'true';
|
||||
|
||||
let client = this[clientKey];
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (action !== '' && !id) {
|
||||
reject(new Error(this[idKey] + ' must be set'));
|
||||
}
|
||||
client('GET', action + (id ? id + '/' : ''), params)
|
||||
.then(response => {
|
||||
resolve(new RetrieveRecordingResponse(response.body, client));
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -80,28 +150,47 @@ export class RecordingInterface extends PlivoResourceInterface {
|
|||
* @param {string} [params.limit] - Display no of results per page
|
||||
* @param {string} [params.offset] - No of value items by which results should be offset
|
||||
*/
|
||||
list(params= {}) {
|
||||
params.isVoiceRequest = 'true';
|
||||
return super.list(params);
|
||||
list(params = {}) {
|
||||
params.isVoiceRequest = 'true';
|
||||
let client = this[clientKey];
|
||||
return new Promise((resolve, reject) => {
|
||||
client('GET', action, params)
|
||||
.then(response => {
|
||||
let objects = [];
|
||||
Object.defineProperty(objects, 'meta', {
|
||||
value: response.body.meta,
|
||||
enumerable: true
|
||||
});
|
||||
response.body.objects.forEach(item => {
|
||||
objects.push(new ListRecordingResponse(item, client));
|
||||
});
|
||||
resolve(objects);
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete recording by id
|
||||
* @method
|
||||
* @param {string} id - id to delete recording
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
/**
|
||||
* Delete recording by id
|
||||
* @method
|
||||
* @param {string} id - id to delete recording
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(id) {
|
||||
let errors = validate([
|
||||
{field: 'id', value: id, validators: ['isRequired']}
|
||||
]);
|
||||
let errors = validate([{
|
||||
field: 'id',
|
||||
value: id,
|
||||
validators: ['isRequired']
|
||||
}]);
|
||||
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new Recording(this[clientKey], {
|
||||
id: id
|
||||
}).delete();
|
||||
if (errors) {
|
||||
return errors;
|
||||
}
|
||||
return new Recording(this[clientKey], {
|
||||
id: id
|
||||
}).delete(id);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
215
lib/rest/axios.js
Normal file
215
lib/rest/axios.js
Normal file
|
|
@ -0,0 +1,215 @@
|
|||
import axios from 'axios';
|
||||
import queryString from 'querystring';
|
||||
import * as Exceptions from '../utils/exceptions';
|
||||
import * as _ from "lodash";
|
||||
|
||||
export function Axios(config) {
|
||||
let auth = 'Basic ' + new Buffer(config.authId + ':' + config.authToken)
|
||||
.toString('base64');
|
||||
|
||||
let headers = {
|
||||
Authorization: auth,
|
||||
'User-Agent': config.userAgent,
|
||||
'Content-Type': 'application/json'
|
||||
};
|
||||
|
||||
const retryWrapper = (axios, options) => {
|
||||
const max_time = options.retryTime;
|
||||
let counter = 0;
|
||||
axios.interceptors.response.use(null, (error) => {
|
||||
const config = error.config;
|
||||
if (counter < max_time && error.response.status >= 500) {
|
||||
counter++;
|
||||
config.url = options.urls[counter] + options.authId + '/' + options.action;
|
||||
return new Promise((resolve) => {
|
||||
resolve(axios(config));
|
||||
})
|
||||
}
|
||||
return Promise.reject(error)
|
||||
})
|
||||
}
|
||||
|
||||
return (method, action, params) => {
|
||||
let configuration = config;
|
||||
// Add support fot multipart requests.
|
||||
if (typeof (params) != 'undefined' && params.multipart == true) {
|
||||
return new Promise((resolve, reject) => {
|
||||
delete params.multipart;
|
||||
|
||||
var FormData = require('form-data');
|
||||
var multipartParams = new FormData();
|
||||
|
||||
for(const key in params) {
|
||||
if (key != 'file') {
|
||||
multipartParams.append(key, params[key]);
|
||||
} else {
|
||||
multipartParams.append(key, require('fs').createReadStream(params[key]));
|
||||
}
|
||||
}
|
||||
|
||||
let headers = multipartParams.getHeaders();
|
||||
|
||||
var config = {
|
||||
method: method,
|
||||
url: configuration.url + '/' + action,
|
||||
headers: {
|
||||
'Authorization': 'Basic ' + new Buffer(configuration.authId + ':' + configuration.authToken).toString('base64'),
|
||||
'User-Agent': configuration.userAgent,
|
||||
'content-type': headers['content-type']
|
||||
},
|
||||
data : multipartParams
|
||||
};
|
||||
|
||||
axios(config).then(response => {
|
||||
const exceptionClass = {
|
||||
400: Exceptions.InvalidRequestError,
|
||||
401: Exceptions.AuthenticationError,
|
||||
404: Exceptions.ResourceNotFoundError,
|
||||
405: Exceptions.InvalidRequestError,
|
||||
500: Exceptions.ServerError,
|
||||
} [response.status] || Error;
|
||||
|
||||
if (!_.inRange(response.status, 200, 300)) {
|
||||
let body = response.data;
|
||||
if (typeof body === 'object') {
|
||||
reject(new exceptionClass(JSON.stringify(body)));
|
||||
}
|
||||
else {
|
||||
reject(new exceptionClass(body));
|
||||
}
|
||||
}
|
||||
resolve({
|
||||
response: response,
|
||||
body: response.data
|
||||
});
|
||||
})
|
||||
.catch(function (error) {
|
||||
reject(error.stack+ "\r\n" + JSON.stringify(error.response.data));
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
if (typeof (params) != 'undefined' && typeof (params.file) != 'undefined') {
|
||||
let files = [];
|
||||
if (Array.isArray(params.file)) {
|
||||
for (let index = 0; index < params.file.length; index++) {
|
||||
files[index] = require('fs').createReadStream(params.file[index]);
|
||||
}
|
||||
} else {
|
||||
files[0] = require('fs').createReadStream(params.file);
|
||||
}
|
||||
params.file = files;
|
||||
}
|
||||
|
||||
let options = {
|
||||
url: config.url + '/' + action,
|
||||
method: method,
|
||||
data: params || '',
|
||||
headers: headers,
|
||||
json: true
|
||||
};
|
||||
let apiVoiceUris = ['https://voice.plivo.com/v1/Account/','https://voice-usw1.plivo.com/v1/Account/','https://voice-use1.plivo.com/v1/Account/'];
|
||||
let isVoiceReq = false;
|
||||
if (params) {
|
||||
if (params.hasOwnProperty('is_call_insights_request')) {
|
||||
options.url = params.call_insights_base_url + params.call_insights_request_path;
|
||||
delete params.is_call_insights_request;
|
||||
delete params.call_insights_base_url;
|
||||
delete params.call_insights_request_path;
|
||||
delete options.data;
|
||||
options.json = params;
|
||||
}
|
||||
else if (params.hasOwnProperty('is_voice_request')){
|
||||
options.url = apiVoiceUris[0] + config.authId + '/' + action;
|
||||
delete params.is_voice_request;
|
||||
isVoiceReq = true;
|
||||
} else if (params.hasOwnProperty('override_url')) {
|
||||
// currently used by Lookup API but is generic enough to be used
|
||||
// by any product in future.
|
||||
options.url = params.override_url;
|
||||
delete params.override_url;
|
||||
}
|
||||
}
|
||||
|
||||
if (method === 'GET' && options.data !== '') {
|
||||
let query = '?' + queryString.stringify(params);
|
||||
options.url += query;
|
||||
}
|
||||
|
||||
if (typeof config.proxy !== 'undefined') {
|
||||
options.proxy = config.proxy;
|
||||
}
|
||||
|
||||
if (typeof config.timeout !== 'undefined') {
|
||||
options.timeout = config.timeout;
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (isVoiceReq) {
|
||||
retryWrapper(axios, {retryTime: 2, urls: apiVoiceUris, authId: config.authId, action: action});
|
||||
options.url = apiVoiceUris[0] + config.authId + '/' + action;
|
||||
axios(options).then(response => {
|
||||
const exceptionClass = {
|
||||
400: Exceptions.InvalidRequestError,
|
||||
401: Exceptions.AuthenticationError,
|
||||
404: Exceptions.ResourceNotFoundError,
|
||||
405: Exceptions.InvalidRequestError,
|
||||
500: Exceptions.ServerError,
|
||||
} [response.status] || Error;
|
||||
|
||||
if (!_.inRange(response.status, 200, 300)) {
|
||||
let body = response.data;
|
||||
if (typeof body === 'object') {
|
||||
reject(new exceptionClass(JSON.stringify(body)));
|
||||
}
|
||||
else {
|
||||
reject(new exceptionClass(body));
|
||||
}
|
||||
}
|
||||
resolve({
|
||||
response: response,
|
||||
body: response.data
|
||||
});
|
||||
})
|
||||
.catch(function (error) {
|
||||
reject(error.stack+ "\r\n" + JSON.stringify(error.response.data));
|
||||
})
|
||||
}
|
||||
else {
|
||||
axios(options).then(response => {
|
||||
const exceptionClass = {
|
||||
400: Exceptions.InvalidRequestError,
|
||||
401: Exceptions.AuthenticationError,
|
||||
404: Exceptions.ResourceNotFoundError,
|
||||
405: Exceptions.InvalidRequestError,
|
||||
500: Exceptions.ServerError,
|
||||
} [response.status] || Error;
|
||||
|
||||
if (!_.inRange(response.status, 200, 300)) {
|
||||
let body = response.data;
|
||||
if (typeof body === 'object') {
|
||||
reject(new exceptionClass(JSON.stringify(body)));
|
||||
}
|
||||
else {
|
||||
reject(new exceptionClass(body));
|
||||
}
|
||||
}
|
||||
else {
|
||||
let body = response.data;
|
||||
let isObj = typeof _body === 'object' && _body !== null && !(_body instanceof Array) && !(_body instanceof Date)
|
||||
if (isObj) {
|
||||
_body['statusCode'] = response.status;
|
||||
}
|
||||
resolve({
|
||||
response: response,
|
||||
body: body
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(function (error) {
|
||||
reject(error.stack + '\n' + JSON.stringify(error.response.data));
|
||||
})
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
|
|
@ -48,6 +48,7 @@ import {
|
|||
import {
|
||||
MediaInterface
|
||||
} from '../resources/media.js';
|
||||
import {MultiPartyCallInterface} from "../resources/multiPartyCall";
|
||||
|
||||
export class Client {
|
||||
constructor(authId, authToken, proxy) {
|
||||
|
|
@ -90,6 +91,12 @@ export class Client {
|
|||
this.pricings = new PricingInterface(client);
|
||||
this.recordings = new RecordingInterface(client);
|
||||
this.media = new MediaInterface(client);
|
||||
this.endUsers = new EndUserInterface(client);
|
||||
this.complianceDocumentTypes = new ComplianceDocumentTypeInterface(client);
|
||||
this.complianceDocuments = new ComplianceDocumentInterface(client);
|
||||
this.complianceRequirements = new ComplianceRequirementInterface(client);
|
||||
this.complianceApplications = new ComplianceApplicationInterface(client);
|
||||
this.multiPartyCalls = new MultiPartyCallInterface(client);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { Request } from "./request.js";
|
||||
import { Axios } from "./axios.js";
|
||||
import { camelCaseRequestWrapper } from "./utils";
|
||||
import { name, version } from "../../package.json";
|
||||
import { Phlo, PhloInterface } from "../resources/phlo";
|
||||
|
|
@ -20,6 +20,12 @@ import { validateV3Signature } from "../utils/v3Security";
|
|||
import { stringify } from "./../utils/jsonStrinfigier";
|
||||
import { CallFeedbackInterface } from "../resources/callFeedback";
|
||||
import { MediaInterface } from "../resources/media.js";
|
||||
import { EndUserInterface } from "../resources/endUsers";
|
||||
import { ComplianceDocumentTypeInterface } from "../resources/complianceDocumentTypes";
|
||||
import { ComplianceDocumentInterface} from "../resources/complianceDocuments";
|
||||
import { ComplianceRequirementInterface } from "../resources/complianceRequirements";
|
||||
import { ComplianceApplicationInterface } from "../resources/complianceApplications";
|
||||
import {MultiPartyCallInterface} from "../resources/multiPartyCall";
|
||||
|
||||
exports.Response = function() {
|
||||
return new Response();
|
||||
|
|
@ -66,8 +72,7 @@ export class Client {
|
|||
},
|
||||
options
|
||||
);
|
||||
|
||||
let client = camelCaseRequestWrapper(Request(options));
|
||||
let client = camelCaseRequestWrapper(Axios(options));
|
||||
|
||||
this.calls = new CallInterface(client);
|
||||
this.accounts = new AccountInterface(client);
|
||||
|
|
@ -83,6 +88,12 @@ export class Client {
|
|||
this.recordings = new RecordingInterface(client);
|
||||
this.callFeedback = new CallFeedbackInterface(client);
|
||||
this.media = new MediaInterface(client);
|
||||
this.endUsers = new EndUserInterface(client);
|
||||
this.complianceDocumentTypes = new ComplianceDocumentTypeInterface(client);
|
||||
this.complianceDocuments = new ComplianceDocumentInterface(client);
|
||||
this.complianceRequirements = new ComplianceRequirementInterface(client);
|
||||
this.complianceApplications = new ComplianceApplicationInterface(client);
|
||||
this.multiPartyCalls = new MultiPartyCallInterface(client);
|
||||
}
|
||||
|
||||
toJSON() {
|
||||
|
|
@ -125,7 +136,7 @@ export class PhloClient {
|
|||
options
|
||||
);
|
||||
|
||||
let client = camelCaseRequestWrapper(Request(options));
|
||||
let client = camelCaseRequestWrapper(Axios(options));
|
||||
|
||||
this.phlo = function(phloId) {
|
||||
let dd = new Phlo(client, { phloId: phloId, authId: authId });
|
||||
|
|
|
|||
|
|
@ -583,6 +583,306 @@ export function Request(config) {
|
|||
});
|
||||
}
|
||||
|
||||
// ============= MultiPartyCalls ===============
|
||||
else if (method === 'GET' && action === 'MultiPartyCall/'){
|
||||
resolve({
|
||||
response: {},
|
||||
body: {
|
||||
"api_id": "d53ab14c-eddb-11ea-b02e-0242ac110003",
|
||||
"meta": {
|
||||
"count": 6,
|
||||
"limit": 20,
|
||||
"next": null,
|
||||
"offset": 0,
|
||||
"previous": null
|
||||
},
|
||||
"objects": [
|
||||
{
|
||||
"billed_amount": "0.00500",
|
||||
"billed_duration": 60,
|
||||
"creation_time": "2020-08-31 15:12:03+00:00",
|
||||
"duration": 3,
|
||||
"end_time": "2020-08-31 15:12:06+00:00",
|
||||
"friendly_name": "TestMPC",
|
||||
"mpc_uuid": "ca8e8a44-48e1-445d-afd5-1fcccdbccd9d",
|
||||
"participants": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_ca8e8a44-48e1-445d-afd5-1fcccdbccd9d/Participant/",
|
||||
"recording": null,
|
||||
"resource_uri": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_ca8e8a44-48e1-445d-afd5-1fcccdbccd9d/",
|
||||
"start_time": null,
|
||||
"status": "Ended",
|
||||
"stay_alone": false,
|
||||
"sub_account": null,
|
||||
"termination_cause": "No Active Participants",
|
||||
"termination_cause_code": 1000
|
||||
},
|
||||
{
|
||||
"billed_amount": "0.00500",
|
||||
"billed_duration": 60,
|
||||
"creation_time": "2020-08-31 14:32:40+00:00",
|
||||
"duration": 5,
|
||||
"end_time": "2020-08-31 14:32:45+00:00",
|
||||
"friendly_name": "TestMPC",
|
||||
"mpc_uuid": "9b531a1f-1692-4802-a7d6-3ef25bcfe3fc",
|
||||
"participants": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_9b531a1f-1692-4802-a7d6-3ef25bcfe3fc/Participant/",
|
||||
"recording": null,
|
||||
"resource_uri": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_9b531a1f-1692-4802-a7d6-3ef25bcfe3fc/",
|
||||
"start_time": null,
|
||||
"status": "Ended",
|
||||
"stay_alone": false,
|
||||
"sub_account": null,
|
||||
"termination_cause": "No Active Participants",
|
||||
"termination_cause_code": 1000
|
||||
},
|
||||
{
|
||||
"billed_amount": "0.01000",
|
||||
"billed_duration": 120,
|
||||
"creation_time": "2020-08-31 14:32:11+00:00",
|
||||
"duration": 11,
|
||||
"end_time": "2020-08-31 14:32:22+00:00",
|
||||
"friendly_name": "TestMPC",
|
||||
"mpc_uuid": "6f84d47c-ee82-4172-a155-c6e22f87d874",
|
||||
"participants": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_6f84d47c-ee82-4172-a155-c6e22f87d874/Participant/",
|
||||
"recording": null,
|
||||
"resource_uri": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_6f84d47c-ee82-4172-a155-c6e22f87d874/",
|
||||
"start_time": null,
|
||||
"status": "Ended",
|
||||
"stay_alone": false,
|
||||
"sub_account": null,
|
||||
"termination_cause": "Stay Alone Not Permitted",
|
||||
"termination_cause_code": 1010
|
||||
},
|
||||
{
|
||||
"billed_amount": "0.00500",
|
||||
"billed_duration": 60,
|
||||
"creation_time": "2020-08-31 14:31:20+00:00",
|
||||
"duration": 3,
|
||||
"end_time": "2020-08-31 14:31:23+00:00",
|
||||
"friendly_name": "TestMPC",
|
||||
"mpc_uuid": "0746f6c6-7447-4e0a-9013-186e4220aaf4",
|
||||
"participants": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_0746f6c6-7447-4e0a-9013-186e4220aaf4/Participant/",
|
||||
"recording": null,
|
||||
"resource_uri": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_0746f6c6-7447-4e0a-9013-186e4220aaf4/",
|
||||
"start_time": "2020-08-31 14:31:20+00:00",
|
||||
"status": "Ended",
|
||||
"stay_alone": false,
|
||||
"sub_account": null,
|
||||
"termination_cause": "No Active Participants",
|
||||
"termination_cause_code": 1000
|
||||
},
|
||||
{
|
||||
"billed_amount": "0.00500",
|
||||
"billed_duration": 60,
|
||||
"creation_time": "2020-08-31 06:42:50+00:00",
|
||||
"duration": 36,
|
||||
"end_time": "2020-08-31 06:43:26+00:00",
|
||||
"friendly_name": "TestMPC",
|
||||
"mpc_uuid": "b89150fd-0387-4bf8-bde7-a4fed39601ce",
|
||||
"participants": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_b89150fd-0387-4bf8-bde7-a4fed39601ce/Participant/",
|
||||
"recording": null,
|
||||
"resource_uri": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_b89150fd-0387-4bf8-bde7-a4fed39601ce/",
|
||||
"start_time": "2020-08-31 06:42:50+00:00",
|
||||
"status": "Ended",
|
||||
"stay_alone": false,
|
||||
"sub_account": null,
|
||||
"termination_cause": "No Active Participants",
|
||||
"termination_cause_code": 1000
|
||||
},
|
||||
{
|
||||
"billed_amount": "0.00500",
|
||||
"billed_duration": 60,
|
||||
"creation_time": "2020-08-28 17:30:10+00:00",
|
||||
"duration": 2,
|
||||
"end_time": "2020-08-28 17:30:12+00:00",
|
||||
"friendly_name": "tank",
|
||||
"mpc_uuid": "2999c70d-b635-420f-b6f2-2fd4421f0381",
|
||||
"participants": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_2999c70d-b635-420f-b6f2-2fd4421f0381/Participant/",
|
||||
"recording": null,
|
||||
"resource_uri": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_2999c70d-b635-420f-b6f2-2fd4421f0381/",
|
||||
"start_time": "2020-08-28 17:30:10+00:00",
|
||||
"status": "Ended",
|
||||
"stay_alone": true,
|
||||
"sub_account": null,
|
||||
"termination_cause": "No Active Participants",
|
||||
"termination_cause_code": 1000
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
else if (method === 'GET' && action === 'MultiPartyCall/uuid_ca8e8a44-48e1-445d-afd5-1fcccdbccd9d'){
|
||||
resolve({
|
||||
response: {},
|
||||
body: {
|
||||
"api_id": "8970c2b3-edfb-11ea-b02e-0242ac110003",
|
||||
"billed_amount": "0.00500",
|
||||
"billed_duration": 60,
|
||||
"creation_time": "2020-08-31 15:12:03+00:00",
|
||||
"duration": 3,
|
||||
"end_time": "2020-08-31 15:12:06+00:00",
|
||||
"friendly_name": "TestMPC",
|
||||
"mpc_uuid": "ca8e8a44-48e1-445d-afd5-1fcccdbccd9d",
|
||||
"participants": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_ca8e8a44-48e1-445d-afd5-1fcccdbccd9d/Participant/",
|
||||
"recording": null,
|
||||
"resource_uri": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_ca8e8a44-48e1-445d-afd5-1fcccdbccd9d/",
|
||||
"start_time": null,
|
||||
"status": "Ended",
|
||||
"stay_alone": false,
|
||||
"sub_account": null,
|
||||
"termination_cause": "No Active Participants",
|
||||
"termination_cause_code": 1000
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
else if (method === 'POST' && action === 'MultiPartyCall/name_Voice/Participant/' && params.role === 'Agent' && params.from === '+919090909090' && params.to === '+918309866821'){
|
||||
resolve({
|
||||
response: {},
|
||||
body: {
|
||||
"api_id": "1cebd713-ee00-11ea-b02e-0242ac110003",
|
||||
"calls": [
|
||||
{
|
||||
"to": "sip:koushikqa119062465586783372208@phone-qa.voice.plivodev.com",
|
||||
"from": "918888888888",
|
||||
"call_uuid": "c0267574-5c12-4861-8990-da9404c8cdf6"
|
||||
}
|
||||
],
|
||||
"message": "add participant action initiated",
|
||||
"request_uuid": "c0267574-5c12-4861-8990-da9404c8cdf6"
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
else if (method === 'POST' && action === 'MultiPartyCall/name_Voice/' && params.status === 'active'){
|
||||
resolve({
|
||||
response: {},
|
||||
body: {}
|
||||
});
|
||||
}
|
||||
|
||||
else if (method === 'DELETE' && action === 'MultiPartyCall/name_Voice/'){
|
||||
resolve({
|
||||
response: {},
|
||||
body: {}
|
||||
});
|
||||
}
|
||||
|
||||
else if (method === 'POST' && action === 'MultiPartyCall/name_TestMPC/Record/'){
|
||||
resolve({
|
||||
response: {},
|
||||
body: {
|
||||
"api_id" : "e9b9b0cf-ee0a-11ea-b02e-0242ac110003",
|
||||
"message" : "MPC: TestMPC record started",
|
||||
"recording_id" : "e9bd7634-ee0a-11ea-9ddf-06feebbe3347",
|
||||
"recording_url" : "https://media-qa.voice.plivodev.com/v1/Account/MAMDJMMTEZOWY0ZMQWM2/Recording/e9bd7634-ee0a-11ea-9ddf-06feebbe3347.mp3"
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
else if (method === 'DELETE' && action === 'MultiPartyCall/name_TestMPC/Record/'){
|
||||
resolve({
|
||||
response: {},
|
||||
body: {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
else if (method === 'POST' && action === 'MultiPartyCall/name_TestMPC/Record/Pause/'){
|
||||
resolve({
|
||||
response: {},
|
||||
body: {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
else if (method === 'POST' && action === 'MultiPartyCall/name_TestMPC/Record/Resume/'){
|
||||
resolve({
|
||||
response: {},
|
||||
body: {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
else if (method === 'GET' && action === 'MultiPartyCall/uuid_12345678-90123456/Participant/'){
|
||||
resolve({
|
||||
response: {},
|
||||
body: {
|
||||
"api_id": "d53e6c49-ee0e-11ea-b02e-0242ac110003",
|
||||
"meta": {
|
||||
"count": 1,
|
||||
"limit": 20,
|
||||
"next": null,
|
||||
"offset": 0,
|
||||
"previous": null
|
||||
},
|
||||
"objects": [
|
||||
{
|
||||
"billed_amount": null,
|
||||
"billed_duration": null,
|
||||
"call_uuid": "426c1fb3-8f47-46e5-a916-51faa85ca90e",
|
||||
"coach_mode": false,
|
||||
"duration": null,
|
||||
"end_mpc_on_exit": false,
|
||||
"exit_cause": null,
|
||||
"exit_time": null,
|
||||
"hold": false,
|
||||
"join_time": "2020-09-03 17:24:12+00:00",
|
||||
"member_id": "2132",
|
||||
"mpc_uuid": "7503f05f-2d6e-4ab3-b9e6-3b0d81ae9087",
|
||||
"mute": false,
|
||||
"resource_uri": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_7503f05f-2d6e-4ab3-b9e6-3b0d81ae9087/Participant/2132/",
|
||||
"role": "agent",
|
||||
"start_mpc_on_enter": true
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
else if (method === 'POST' && action === 'MultiPartyCall/uuid_12345678-90123456/Participant/10/'){
|
||||
resolve({
|
||||
response: {},
|
||||
body: {
|
||||
"api_id" : "be5a333a-ee0f-11ea-b02e-0242ac110003",
|
||||
"hold" : "MPC: TestMPC hold/unhold member(s) succeded",
|
||||
"mute" : "MPC: TestMPC mute/unmute member(s) succeded"
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
else if (method === 'DELETE' && action === 'MultiPartyCall/uuid_12345678-90123456/Participant/10/'){
|
||||
resolve({
|
||||
response: {},
|
||||
body: {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
else if (method === 'GET' && action === 'MultiPartyCall/uuid_7503f05f-2d6e-4ab3-b9e6-3b0d81ae9087/Participant/2132/'){
|
||||
resolve({
|
||||
response: {},
|
||||
body: {
|
||||
"api_id": "7ca274bb-ee11-11ea-b02e-0242ac110003",
|
||||
"billed_amount": null,
|
||||
"billed_duration": null,
|
||||
"call_uuid": "426c1fb3-8f47-46e5-a916-51faa85ca90e",
|
||||
"coach_mode": false,
|
||||
"duration": null,
|
||||
"end_mpc_on_exit": false,
|
||||
"exit_cause": null,
|
||||
"exit_time": null,
|
||||
"hold": false,
|
||||
"join_time": "2020-09-03 17:24:12+00:00",
|
||||
"member_id": "2132",
|
||||
"mpc_uuid": "7503f05f-2d6e-4ab3-b9e6-3b0d81ae9087",
|
||||
"mute": false,
|
||||
"resource_uri": "/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_7503f05f-2d6e-4ab3-b9e6-3b0d81ae9087/Participant/2132/",
|
||||
"role": "agent",
|
||||
"start_mpc_on_enter": true
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// ============= Numbers ===================
|
||||
else if (method == 'GET' && action == 'Number/+919999999990/') {
|
||||
resolve({
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ import _mapValues from 'lodash/mapValues';
|
|||
import _map from 'lodash/map';
|
||||
import { parseString } from 'xml2js';
|
||||
|
||||
export class InvalidRequestError extends Error {}
|
||||
|
||||
function recursivelyRenameObject(object, renameFunc) {
|
||||
if (!(object instanceof Object)) {
|
||||
return object;
|
||||
|
|
@ -47,7 +49,8 @@ export function camelCaseRequestWrapper(requestFunc) {
|
|||
.replace('_greater_or_equal', '__gte')
|
||||
.replace('_less_or_equal', '__lte')
|
||||
.replace('_equal', '')
|
||||
.replace('_equals', '');
|
||||
.replace('_equals', '')
|
||||
.replace('country_iso_2', 'country_iso2');
|
||||
});
|
||||
|
||||
return requestFunc(method, action, params).then(res => {
|
||||
|
|
@ -78,3 +81,203 @@ export function validateSpeakAttributes(content, voice) {
|
|||
}
|
||||
}
|
||||
|
||||
export function validSubAccount(accountId){
|
||||
if(accountId.constructor !== String){
|
||||
throw new InvalidRequestError('Subaccount Id must be a string');
|
||||
}
|
||||
|
||||
if(accountId.length !== 20){
|
||||
throw new InvalidRequestError('Subaccount Id should be of length 20');
|
||||
}
|
||||
|
||||
if(accountId.substring(0,2) !== 'SA'){
|
||||
throw new InvalidRequestError("Subaccount Id should start with 'SA'");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
export function validMultipleDestinationNos(paramName, paramValue, options = {}){
|
||||
if(paramValue.split(options.delimiter).length > 1 && options.role.toLowerCase()!=='agent'){
|
||||
throw new InvalidRequestError('Multiple ' + paramName + ' values given for role ' + options.role)
|
||||
}
|
||||
else if (paramValue.split(options.delimiter).length >= options.agentLimit){
|
||||
throw new InvalidRequestError('No of ' + paramName + ' values provided should be lesser than ' + options.agentLimit)
|
||||
}
|
||||
else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
export function validParam(paramName, paramValue, expectedTypes = null, mandatory = false, expectedValues = null){
|
||||
if(mandatory && !paramValue){
|
||||
throw new InvalidRequestError(paramName + " is a required parameter");
|
||||
}
|
||||
|
||||
if (!paramValue){
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!expectedValues){
|
||||
return expectedType(paramName, expectedTypes, paramValue);
|
||||
}
|
||||
|
||||
if(expectedValue(paramName, expectedValues, paramValue)){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
export function expectedType(paramName, expectedTypes, paramValue){
|
||||
if(!expectedTypes){
|
||||
return true;
|
||||
}
|
||||
|
||||
if(expectedTypes.indexOf(paramValue.constructor)===-1){
|
||||
throw new InvalidRequestError(paramName + ": Expected one of " + expectedTypes + " but received " + paramValue.constructor + " instead")
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export function expectedValue(paramName, expectedValues, paramValue){
|
||||
if(!expectedValues){
|
||||
return true;
|
||||
}
|
||||
|
||||
if(expectedValues.constructor === Array){
|
||||
if(expectedValues.indexOf(paramValue) === -1){
|
||||
throw new InvalidRequestError(paramName + ': Expected one of ' + expectedValues + ' but received ' + paramValue + ' instead');
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
if(expectedValues !== paramValue){
|
||||
throw new InvalidRequestError(paramName + ': Expected ' + expectedValues + ' but received ' + paramValue + ' instead')
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
export function multiValidParam(paramName, paramValue, expectedTypes = null, mandatory = false, expectedValues = null, makeLowerCase = false, seperator = ','){
|
||||
if(mandatory && !paramValue){
|
||||
throw new InvalidRequestError(paramName + 'is a required parameter');
|
||||
}
|
||||
|
||||
if(!paramValue){
|
||||
return true;
|
||||
}
|
||||
|
||||
if(makeLowerCase){
|
||||
paramValue = paramValue.toLowerCase();
|
||||
}
|
||||
else{
|
||||
paramValue = paramValue.toUpperCase();
|
||||
}
|
||||
let values = paramValue.split(seperator)
|
||||
if(expectedValues) {
|
||||
for (let i = 0; i < values.length; i++) {
|
||||
expectedValue(paramName, expectedValues, values[i].trim());
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
export function validUrl(paramName, paramValue, mandatory = false){
|
||||
if(mandatory && !paramValue){
|
||||
throw new InvalidRequestError(paramName + 'is a required parameter');
|
||||
}
|
||||
|
||||
if(!paramValue){
|
||||
return true;
|
||||
}
|
||||
|
||||
let response = paramValue.match(/(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g);
|
||||
if(response == null){
|
||||
throw new InvalidRequestError("Invalid URL : Doesn't satisfy the URL format")
|
||||
}
|
||||
else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
export function isOneAmongStringUrl(paramName, paramValue, mandatory = false, expectedValues = null){
|
||||
if(mandatory && !paramValue){
|
||||
throw new InvalidRequestError(paramName + 'is a required parameter');
|
||||
}
|
||||
|
||||
if(!paramValue){
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!(expectedValues.indexOf(paramValue.toLowerCase()) === -1) || !(expectedValues.indexOf(paramValue.toUpperCase()) === -1)){
|
||||
return true;
|
||||
}
|
||||
else if (validUrl(paramName, paramValue)){
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
throw new InvalidRequestError(paramName + ' neither a valid URL nor in the expected values')
|
||||
}
|
||||
}
|
||||
|
||||
export function validDateFormat(paramName, paramValue, mandatory = false){
|
||||
if(mandatory && !paramValue){
|
||||
throw new InvalidRequestError(paramName + " is a required parameter")
|
||||
}
|
||||
|
||||
if(!paramValue){
|
||||
return true;
|
||||
}
|
||||
|
||||
let response = paramValue.match(/^\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$/);
|
||||
if(response == null){
|
||||
throw new InvalidRequestError("Invalid Date : Doesn't satisfy the date format")
|
||||
}
|
||||
else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
export function validRange(paramName, paramValue, mandatory = false, lowerBound = null, upperBound = null){
|
||||
if(mandatory && !paramValue){
|
||||
throw new InvalidRequestError(paramName + " is a required parameter")
|
||||
}
|
||||
|
||||
if(!paramValue && paramValue !== 0){
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!expectedType(paramName, [Number], paramValue)){
|
||||
throw new InvalidRequestError(paramName + ": Expected an Integer but received " + paramValue.constructor + " instead")
|
||||
}
|
||||
|
||||
if(lowerBound && upperBound){
|
||||
if(paramValue < lowerBound || paramValue > upperBound) {
|
||||
throw new InvalidRequestError(paramName + " ranges between " + lowerBound + " and " + upperBound)
|
||||
}
|
||||
|
||||
if(paramValue >= lowerBound && paramValue <= upperBound){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if(lowerBound){
|
||||
if(paramValue < lowerBound){
|
||||
throw new InvalidRequestError(paramName + " should be greater than " + lowerBound)
|
||||
}
|
||||
|
||||
if(paramValue >= lowerBound){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if(upperBound){
|
||||
if(paramValue > upperBound){
|
||||
throw new InvalidRequestError(paramName + " should be lesser than " + upperBound)
|
||||
}
|
||||
|
||||
if(paramValue <= upperBound){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else{
|
||||
throw new InvalidRequestError("Any one or both of lower and upper bound should be provided")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@ export function AccessToken(authId, authToken, username, validityOptions = {}, u
|
|||
this.uid = uid || this.username + "-" + (new Date()).getTime();
|
||||
}
|
||||
|
||||
AccessToken.prototype = {
|
||||
addVoiceGrants: function(incoming = false, outgoing = false) {
|
||||
|
||||
AccessToken.prototype.addVoiceGrants= function(incoming = false, outgoing = false) {
|
||||
this.grants = {
|
||||
voice: {
|
||||
incoming_allow: incoming,
|
||||
|
|
@ -47,7 +47,8 @@ AccessToken.prototype = {
|
|||
}
|
||||
};
|
||||
|
||||
},
|
||||
}
|
||||
AccessToken.prototype = {
|
||||
toJwt: function() {
|
||||
let payload = {
|
||||
jti: this.uid,
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ export class PlivoXMLError extends Error { }
|
|||
export function Response() {
|
||||
this.element = 'Response';
|
||||
this.nestables = ['Speak', 'Play', 'GetDigits', 'GetInput', 'Record', 'Dial', 'Message',
|
||||
'Redirect', 'Wait', 'Hangup', 'PreAnswer', 'Conference', 'DTMF'];
|
||||
'Redirect', 'Wait', 'Hangup', 'PreAnswer', 'Conference', 'DTMF', 'MultiPartyCall'];
|
||||
this.valid_attributes = [];
|
||||
this.elem = xmlBuilder.begin().ele(this.element);
|
||||
}
|
||||
|
|
@ -439,6 +439,234 @@ Response.prototype = {
|
|||
return this.add(new DTMF(Response), body, attributes);
|
||||
},
|
||||
|
||||
/**
|
||||
* Add a MultiPartyCall element
|
||||
* @method
|
||||
* @param {string} body
|
||||
* @param {object} attributes
|
||||
* @param {string} [attributes.role]
|
||||
* @param {number} [attributes.maxDuration]
|
||||
* @param {number} [attributes.maxParticipants]
|
||||
* @param {string} [attributes.waitMusicMethod]
|
||||
* @param {string} [attributes.agentHoldMusicMethod]
|
||||
* @param {string} [attributes.customerHoldMusicMethod]
|
||||
* @param {boolean} [attributes.record]
|
||||
* @param {string} [attributes.recordFileFormat]
|
||||
* @param {string} [attributes.recordingCallbackMethod]
|
||||
* @param {string} [attributes.statusCallbackEvents]
|
||||
* @param {string} [attributes.statusCallbackMethod]
|
||||
* @param {boolean} [attributes.stayAlone]
|
||||
* @param {boolean} [attributes.coachMode]
|
||||
* @param {boolean} [attributes.mute]
|
||||
* @param {boolean} [attributes.hold]
|
||||
* @param {boolean} [attributes.startMpcOnEnter]
|
||||
* @param {boolean} [attributes.endMpcOnExit]
|
||||
* @param {string} [attributes.enterSound]
|
||||
* @param {string} [attributes.enterSoundMethod]
|
||||
* @param {string} [attributes.exitSound]
|
||||
* @param {string} [attributes.exitSoundMethod]
|
||||
* @param {string} [attributes.onExitActionMethod]
|
||||
* @param {boolean} [attributes.relayDTMFInputs]
|
||||
* @param {string} [attributes.waitMusicUrl]
|
||||
* @param {string} [attributes.agentHoldMusicUrl]
|
||||
* @param {string} [attributes.customerHoldMusicUrl]
|
||||
* @param {string} [attributes.recordingCallbackUrl]
|
||||
* @param {string} [attributes.statusCallbackUrl]
|
||||
* @param {string} [attributes.customerHoldMusicUrl]
|
||||
*/
|
||||
addMultiPartyCall: function (body, attributes){
|
||||
const VALID_ROLE_VALUES = ['agent', 'supervisor', 'customer']
|
||||
const VALID_METHOD_VALUES = ['GET', 'POST']
|
||||
const VALID_BOOL_VALUES = [true, false]
|
||||
const VALID_RECORD_FILE_FORMAT_VALUES = ['mp3', 'wav']
|
||||
|
||||
if(attributes.role && VALID_ROLE_VALUES.indexOf(attributes.role.toLowerCase())===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.role + ' for role')
|
||||
}
|
||||
else if (!attributes.role){
|
||||
throw new PlivoXMLError('role not mentioned : possible values - Agent / Supervisor / Customer')
|
||||
}
|
||||
|
||||
if(attributes.maxDuration && (attributes.maxDuration<300 || attributes.maxDuration>28800)){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.maxDuration + ' for maxDuration')
|
||||
}
|
||||
else if(!attributes.maxDuration){
|
||||
attributes.maxDuration = 14400
|
||||
}
|
||||
|
||||
if(attributes.maxParticipants && (attributes.maxParticipants<2 || attributes.maxParticipants>10)){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.maxParticipants + ' for maxParticipants')
|
||||
}
|
||||
else if(!attributes.maxParticipants){
|
||||
attributes.maxParticipants = 10
|
||||
}
|
||||
|
||||
if(attributes.waitMusicMethod && VALID_METHOD_VALUES.indexOf(attributes.waitMusicMethod.toUpperCase())===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.waitMusicMethod + ' for waitMusicMethod')
|
||||
}
|
||||
else if (!attributes.waitMusicMethod){
|
||||
attributes.waitMusicMethod = 'GET'
|
||||
}
|
||||
|
||||
if(attributes.agentHoldMusicMethod && VALID_METHOD_VALUES.indexOf(attributes.agentHoldMusicMethod.toUpperCase())===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.agentHoldMusicMethod + ' for agentHoldMusicMethod')
|
||||
}
|
||||
else if (!attributes.agentHoldMusicMethod){
|
||||
attributes.agentHoldMusicMethod = 'GET'
|
||||
}
|
||||
|
||||
if(attributes.customerHoldMusicMethod && VALID_METHOD_VALUES.indexOf(attributes.customerHoldMusicMethod.toUpperCase())===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.customerHoldMusicMethod + ' for customerHoldMusicMethod')
|
||||
}
|
||||
else if (!attributes.customerHoldMusicMethod){
|
||||
attributes.customerHoldMusicMethod = 'GET'
|
||||
}
|
||||
|
||||
if(attributes.record && VALID_BOOL_VALUES.indexOf(attributes.record)===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.record + ' for record')
|
||||
}
|
||||
else if (!attributes.record){
|
||||
attributes.record = false
|
||||
}
|
||||
|
||||
if(attributes.recordFileFormat && VALID_RECORD_FILE_FORMAT_VALUES.indexOf(attributes.recordFileFormat.toLowerCase())===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.recordFileFormat + ' for recordFileFormat')
|
||||
}
|
||||
else if (!attributes.recordFileFormat){
|
||||
attributes.recordFileFormat = 'mp3'
|
||||
}
|
||||
|
||||
if(attributes.recordingCallbackMethod && VALID_METHOD_VALUES.indexOf(attributes.recordingCallbackMethod.toUpperCase())===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.recordingCallbackMethod + ' for recordingCallbackMethod')
|
||||
}
|
||||
else if (!attributes.recordingCallbackMethod){
|
||||
attributes.recordingCallbackMethod = 'GET'
|
||||
}
|
||||
|
||||
if(attributes.statusCallbackEvents && !plivoUtils.multiValidParam('statusCallbackEvents', attributes.statusCallbackEvents, String, false, ['mpc-state-changes', 'participant-state-changes', 'participant-speak-events', 'participant-digit-input-events', 'add-participant-api-events'], true, ',')){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.statusCallbackEvents + ' for statusCallbackEvents')
|
||||
}
|
||||
else if(!attributes.statusCallbackEvents){
|
||||
attributes.statusCallbackEvents = 'mpc-state-changes,participant-state-changes'
|
||||
}
|
||||
|
||||
if(attributes.statusCallbackMethod && VALID_METHOD_VALUES.indexOf(attributes.statusCallbackMethod.toUpperCase())===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.statusCallbackMethod + ' for statusCallbackMethod')
|
||||
}
|
||||
else if (!attributes.statusCallbackMethod){
|
||||
attributes.statusCallbackMethod = 'POST'
|
||||
}
|
||||
|
||||
if(attributes.stayAlone && VALID_BOOL_VALUES.indexOf(attributes.stayAlone)===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.stayAlone + ' for stayAlone')
|
||||
}
|
||||
else if (!attributes.stayAlone){
|
||||
attributes.stayAlone = false
|
||||
}
|
||||
|
||||
if(attributes.coachMode && VALID_BOOL_VALUES.indexOf(attributes.coachMode)===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.coachMode + ' for coachMode')
|
||||
}
|
||||
else if (!attributes.coachMode){
|
||||
attributes.coachMode = true
|
||||
}
|
||||
|
||||
if(attributes.mute && VALID_BOOL_VALUES.indexOf(attributes.mute)===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.mute + ' for mute')
|
||||
}
|
||||
else if (!attributes.mute){
|
||||
attributes.mute = false
|
||||
}
|
||||
|
||||
if(attributes.hold && VALID_BOOL_VALUES.indexOf(attributes.hold)===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.hold + ' for hold')
|
||||
}
|
||||
else if (!attributes.hold){
|
||||
attributes.hold = false
|
||||
}
|
||||
|
||||
if(attributes.startMpcOnEnter && VALID_BOOL_VALUES.indexOf(attributes.startMpcOnEnter)===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.startMpcOnEnter + ' for startMpcOnEnter')
|
||||
}
|
||||
else if (!attributes.startMpcOnEnter){
|
||||
attributes.startMpcOnEnter = true
|
||||
}
|
||||
|
||||
if(attributes.endMpcOnExit && VALID_BOOL_VALUES.indexOf(attributes.endMpcOnExit)===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.endMpcOnExit + ' for endMpcOnExit')
|
||||
}
|
||||
else if (!attributes.endMpcOnExit){
|
||||
attributes.endMpcOnExit = false
|
||||
}
|
||||
|
||||
if(attributes.enterSound && !plivoUtils.isOneAmongStringUrl('enterSound', attributes.enterSound, false, ['beep:1', 'beep:2', 'none'])){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.enterSound + ' for enterSound')
|
||||
}
|
||||
else if(!attributes.enterSound){
|
||||
attributes.enterSound = 'beep:1'
|
||||
}
|
||||
|
||||
if(attributes.enterSoundMethod && VALID_METHOD_VALUES.indexOf(attributes.enterSoundMethod.toUpperCase())===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.enterSoundMethod + ' for enterSoundMethod')
|
||||
}
|
||||
else if (!attributes.enterSoundMethod){
|
||||
attributes.enterSoundMethod = 'GET'
|
||||
}
|
||||
|
||||
if(attributes.exitSound && !plivoUtils.isOneAmongStringUrl('exitSound', attributes.exitSound, false, ['beep:1', 'beep:2', 'none'])){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.exitSound + ' for exitSound')
|
||||
}
|
||||
else if(!attributes.exitSound){
|
||||
attributes.exitSound = 'beep:2'
|
||||
}
|
||||
|
||||
if(attributes.exitSoundMethod && VALID_METHOD_VALUES.indexOf(attributes.exitSoundMethod.toUpperCase())===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.exitSoundMethod + ' for exitSoundMethod')
|
||||
}
|
||||
else if (!attributes.exitSoundMethod){
|
||||
attributes.exitSoundMethod = 'GET'
|
||||
}
|
||||
|
||||
if(attributes.onExitActionMethod && VALID_METHOD_VALUES.indexOf(attributes.onExitActionMethod.toUpperCase())===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.onExitActionMethod + ' for onExitActionMethod')
|
||||
}
|
||||
else if (!attributes.onExitActionMethod){
|
||||
attributes.onExitActionMethod = 'POST'
|
||||
}
|
||||
|
||||
if(attributes.relayDTMFInputs && VALID_BOOL_VALUES.indexOf(attributes.relayDTMFInputs)===-1){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.relayDTMFInputs + ' for relayDTMFInputs')
|
||||
}
|
||||
else if (!attributes.relayDTMFInputs){
|
||||
attributes.relayDTMFInputs = false
|
||||
}
|
||||
|
||||
if(attributes.waitMusicUrl && !plivoUtils.validUrl('waitMusicUrl', attributes.waitMusicUrl, false)){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.waitMusicUrl + ' for waitMusicUrl')
|
||||
}
|
||||
|
||||
if(attributes.agentHoldMusicUrl && !plivoUtils.validUrl('agentHoldMusicUrl', attributes.agentHoldMusicUrl, false)){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.agentHoldMusicUrl + ' for agentHoldMusicUrl')
|
||||
}
|
||||
|
||||
if(attributes.customerHoldMusicUrl && !plivoUtils.validUrl('customerHoldMusicUrl', attributes.customerHoldMusicUrl, false)){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.customerHoldMusicUrl + ' for customerHoldMusicUrl')
|
||||
}
|
||||
|
||||
if(attributes.recordingCallbackUrl && !plivoUtils.validUrl('recordingCallbackUrl', attributes.recordingCallbackUrl, false)){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.recordingCallbackUrl + ' for recordingCallbackUrl')
|
||||
}
|
||||
|
||||
if(attributes.statusCallbackUrl && !plivoUtils.validUrl('statusCallbackUrl', attributes.statusCallbackUrl, false)){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.statusCallbackUrl + ' for statusCallbackUrl')
|
||||
}
|
||||
|
||||
if(attributes.customerHoldMusicUrl && !plivoUtils.validUrl('customerHoldMusicUrl', attributes.customerHoldMusicUrl, false)){
|
||||
throw new PlivoXMLError('Invalid attribute value ' + attributes.customerHoldMusicUrl + ' for customerHoldMusicUrl')
|
||||
}
|
||||
return this.add(new MultiPartyCall(Response), body, attributes);
|
||||
},
|
||||
|
||||
toXML: function () {
|
||||
return this.elem.toString();
|
||||
},
|
||||
|
|
@ -520,7 +748,7 @@ function GetInput(Response) {
|
|||
this.element = 'GetInput';
|
||||
this.valid_attributes = ['action', 'method', 'inputType', 'executionTimeout',
|
||||
'digitEndTimeout', 'speechEndTimeout', 'finishOnKey', 'numDigits',
|
||||
'speechModel', 'hints','language', 'interimSpeechResultsCallback',
|
||||
'speechModel', 'hints','language', 'interimSpeechResultsCallback',
|
||||
'interimSpeechResultsCallbackMethod', 'log', 'redirect', 'profanityFilter'];
|
||||
this.nestables = ['Speak', 'Play', 'Wait'];
|
||||
}
|
||||
|
|
@ -741,3 +969,21 @@ function DTMF(Response) {
|
|||
}
|
||||
|
||||
util.inherits(DTMF, Response);
|
||||
|
||||
/**
|
||||
* MultiPartyCall element
|
||||
* @constructor
|
||||
*/
|
||||
function MultiPartyCall(Response){
|
||||
this.element = 'MultiPartyCall';
|
||||
this.nestables = [];
|
||||
this.valid_attributes = ['role', 'maxDuration', 'maxParticipants', 'waitMusicUrl',
|
||||
'waitMusicMethod', 'agentHoldMusicUrl', 'agentHoldMusicMethod',
|
||||
'customerHoldMusicUrl', 'customerHoldMusicMethod', 'record',
|
||||
'recordFileFormat', 'recordingCallbackUrl', 'recordingCallbackMethod',
|
||||
'statusCallbackEvents', 'statusCallbackUrl', 'statusCallbackMethod',
|
||||
'stayAlone', 'coachMode', 'mute', 'hold', 'startMpcOnEnter', 'endMpcOnExit',
|
||||
'enterSound', 'enterSoundMethod', 'exitSound', 'exitSoundMethod',
|
||||
'onExitActionUrl', 'onExitActionMethod', 'relayDTMFInputs'];
|
||||
}
|
||||
util.inherits(MultiPartyCall, Response);
|
||||
|
|
|
|||
|
|
@ -2,21 +2,23 @@
|
|||
const utf8 = require('utf8');
|
||||
const buildUrl = require('build-url');
|
||||
const base64 = require('base-64');
|
||||
import * as parser from 'uri-parser';
|
||||
import crypto from 'crypto';
|
||||
import _ from 'lodash';
|
||||
|
||||
export function computeOldSignature(authId: string, uri: string, params: {[string]: string}): string {
|
||||
import * as parser from 'uri-parser';
|
||||
|
||||
import _ from 'lodash';
|
||||
import crypto from 'crypto';
|
||||
|
||||
export function computeOldSignature(authId, uri, params){
|
||||
const joinedParams = uri + _.join(_.map(_.sortBy(_.toPairs(params)), item => item[0] + item[1]), '');
|
||||
// console.log(joinedParams);
|
||||
return crypto.createHmac('sha1', authId).update(joinedParams).digest('base64');
|
||||
}
|
||||
|
||||
export function verifyOldSignature(authId: string, uri: string, params: {[string]: string}, signature: string): boolean {
|
||||
export function verifyOldSignature(authId, uri, params, signature) {
|
||||
return computeOldSignature(authId, uri, params) === signature;
|
||||
}
|
||||
|
||||
export function validateSignature(uri: string, nonce: string, signature: string, auth_token: string) {
|
||||
export function validateSignature(uri, nonce, signature, auth_token) {
|
||||
nonce = utf8.encode(nonce);
|
||||
signature = utf8.encode(signature);
|
||||
auth_token = utf8.encode(auth_token);
|
||||
|
|
|
|||
|
|
@ -3,9 +3,11 @@ const utf8 = require('utf8');
|
|||
const buildUrl = require('build-url');
|
||||
const base64 = require('base-64');
|
||||
const qs = require('querystring');
|
||||
|
||||
import * as parser from 'uri-parser';
|
||||
import crypto from 'crypto';
|
||||
|
||||
import _ from 'lodash';
|
||||
import crypto from 'crypto';
|
||||
|
||||
function get_map_from_query(params1, params2) {
|
||||
let params = {};
|
||||
|
|
@ -85,9 +87,9 @@ function get_signature_v3(auth_token, base_url, nonce) {
|
|||
return base64.encode(hmacBytes);
|
||||
}
|
||||
|
||||
export function validateV3Signature(method: string, uri: string,
|
||||
nonce: string, auth_token: string,
|
||||
v3_signature: string, params={}) {
|
||||
export function validateV3Signature(method, uri,
|
||||
nonce, auth_token,
|
||||
v3_signature, params={}) {
|
||||
auth_token = utf8.encode(auth_token);
|
||||
nonce = utf8.encode(nonce);
|
||||
v3_signature = utf8.encode(v3_signature);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "plivo",
|
||||
"version": "4.12.0",
|
||||
"version": "4.16.0",
|
||||
"description": "A Node.js SDK to make voice calls and send SMS using Plivo and to generate Plivo XML",
|
||||
"homepage": "https://github.com/plivo/plivo-node",
|
||||
"files": [
|
||||
|
|
@ -40,6 +40,7 @@
|
|||
"gulp-mocha": "^3.0.1",
|
||||
"gulp-plumber": "^1.0.0",
|
||||
"isparta": "^4.0.0",
|
||||
"merge-stream": "^2.0.0",
|
||||
"sinon": "^2.1.0"
|
||||
},
|
||||
"eslintConfig": {
|
||||
|
|
@ -57,12 +58,14 @@
|
|||
"test": "gulp"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/node": "^14.14.14",
|
||||
"axios": "^0.19.2",
|
||||
"base-64": "^0.1.0",
|
||||
"build-url": "^1.0.10",
|
||||
"form-data": "^4.0.0",
|
||||
"jsonwebtoken": "^8.5.1",
|
||||
"lodash": "^4.17.4",
|
||||
"querystring": "^0.2.0",
|
||||
"request": "^2.81.0",
|
||||
"uri-parser": "^1.0.0",
|
||||
"utf8": "^2.1.2",
|
||||
"xml2js": "^0.4.19",
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ describe('calls', function () {
|
|||
client.calls.get(1)
|
||||
.then(function(call){
|
||||
return call.transfer()
|
||||
done()
|
||||
})
|
||||
.then(function(call) {
|
||||
assert.equal(call.id, 5)
|
||||
|
|
|
|||
95
test/multiPartyCalls.js
Normal file
95
test/multiPartyCalls.js
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
import assert from 'assert';
|
||||
import sinon from 'sinon';
|
||||
import {Client} from '../lib/rest/client-test';
|
||||
import {PlivoGenericResponse} from '../lib/base.js';
|
||||
import {MultiPartyCall} from "../lib/resources/multiPartyCall";
|
||||
|
||||
let client = new Client('sampleid', 'sammpletoken', 'sampleproxy');
|
||||
|
||||
describe('multiPartyCalls', function (){
|
||||
it('should list all MultiPartyCalls', function (){
|
||||
return client.multiPartyCalls.list().then(function (response){
|
||||
for(let i=0; i< response.length;i++) {
|
||||
assert(response[i] instanceof MultiPartyCall)
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
it('should get details of a MultiPartyCall', function (){
|
||||
return client.multiPartyCalls.get('ca8e8a44-48e1-445d-afd5-1fcccdbccd9d').then(function (response){
|
||||
assert(response instanceof PlivoGenericResponse)
|
||||
assert.equal(response.id, 'ca8e8a44-48e1-445d-afd5-1fcccdbccd9d')
|
||||
assert.equal(response.resourceUri, '/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_ca8e8a44-48e1-445d-afd5-1fcccdbccd9d/')
|
||||
})
|
||||
});
|
||||
|
||||
it('should add a Participant', function (){
|
||||
return client.multiPartyCalls.addParticipant('Agent', {'friendlyName' : 'Voice', 'from' : '+919090909090', 'to' : '+918309866821'}).then(function (response){
|
||||
assert(response instanceof PlivoGenericResponse)
|
||||
assert.equal(response.message, 'add participant action initiated')
|
||||
})
|
||||
});
|
||||
|
||||
it('should start an MPC', function (){
|
||||
return client.multiPartyCalls.start(null, 'Voice').then(function (response){
|
||||
assert(response instanceof PlivoGenericResponse)
|
||||
})
|
||||
});
|
||||
|
||||
it('should end an MPC', function (){
|
||||
return client.multiPartyCalls.stop(null, 'Voice').then(function (response){
|
||||
assert(response, true)
|
||||
})
|
||||
});
|
||||
|
||||
it('should start MPC Recording', function (){
|
||||
return client.multiPartyCalls.startRecording(null, 'TestMPC').then(function (response){
|
||||
assert(response.message, "MPC: TestMPC record started")
|
||||
})
|
||||
});
|
||||
|
||||
it('should stop MPC Recording', function (){
|
||||
return client.multiPartyCalls.stopRecording(null, 'TestMPC').then(function (response){
|
||||
assert(response instanceof PlivoGenericResponse)
|
||||
})
|
||||
});
|
||||
|
||||
it('should pause MPC Recording', function (){
|
||||
return client.multiPartyCalls.pauseRecording(null, 'TestMPC').then(function (response){
|
||||
assert(response instanceof PlivoGenericResponse)
|
||||
})
|
||||
});
|
||||
|
||||
it('should resume MPC Recording', function (){
|
||||
return client.multiPartyCalls.resumeRecording(null, 'TestMPC').then(function (response){
|
||||
assert(response instanceof PlivoGenericResponse)
|
||||
})
|
||||
});
|
||||
|
||||
it('should list MPC Participants', function (){
|
||||
return client.multiPartyCalls.listParticipants('12345678-90123456', null).then(function (response){
|
||||
assert(response instanceof PlivoGenericResponse)
|
||||
})
|
||||
});
|
||||
|
||||
it('should update MPC Participant', function (){
|
||||
return client.multiPartyCalls.updateParticipant(10, '12345678-90123456', null).then(function (response){
|
||||
assert(response instanceof PlivoGenericResponse)
|
||||
assert.equal(response.hold, 'MPC: TestMPC hold/unhold member(s) succeded')
|
||||
assert.equal(response.mute, 'MPC: TestMPC mute/unmute member(s) succeded')
|
||||
})
|
||||
});
|
||||
|
||||
it('should kick MPC Participant', function (){
|
||||
return client.multiPartyCalls.kickParticipant(10, '12345678-90123456', null).then(function (response){
|
||||
assert(response instanceof PlivoGenericResponse)
|
||||
})
|
||||
});
|
||||
|
||||
it('should get MPC Participant', function (){
|
||||
return client.multiPartyCalls.getParticipant(2132, '7503f05f-2d6e-4ab3-b9e6-3b0d81ae9087', null).then(function (response){
|
||||
assert(response instanceof PlivoGenericResponse)
|
||||
assert.equal(response.resourceUri, '/v1/Account/MAMDJMMTEZOWY0ZMQWM2/MultiPartyCall/uuid_7503f05f-2d6e-4ab3-b9e6-3b0d81ae9087/Participant/2132/')
|
||||
})
|
||||
});
|
||||
})
|
||||
11
test/xml.js
11
test/xml.js
|
|
@ -29,4 +29,15 @@ describe('PlivoXML', function () {
|
|||
done("Failed to test Plivo Xml due to unknown error");
|
||||
});
|
||||
});
|
||||
|
||||
it('tests MultiPartyCall', function (done){
|
||||
const mpcResponse = new Response();
|
||||
mpcResponse.addMultiPartyCall('Nairobi',{
|
||||
role: 'Agent',
|
||||
maxDuration: 1000,
|
||||
statusCallbackEvents: 'participant-speak-events, participant-digit-input-events, add-participant-api-events, participant-state-changes, mpc-state-changes'
|
||||
});
|
||||
assert.equal('<Response><MultiPartyCall role="Agent" maxDuration="1000" statusCallbackEvents="participant-speak-events, participant-digit-input-events, add-participant-api-events, participant-state-changes, mpc-state-changes" maxParticipants="10" waitMusicMethod="GET" agentHoldMusicMethod="GET" customerHoldMusicMethod="GET" record="false" recordFileFormat="mp3" recordingCallbackMethod="GET" statusCallbackMethod="POST" stayAlone="false" coachMode="true" mute="false" hold="false" startMpcOnEnter="true" endMpcOnExit="false" enterSound="beep:1" enterSoundMethod="GET" exitSound="beep:2" exitSoundMethod="GET" onExitActionMethod="POST" relayDTMFInputs="false">Nairobi</MultiPartyCall></Response>',mpcResponse.toXML());
|
||||
done();
|
||||
})
|
||||
});
|
||||
|
|
|
|||
19
types/base.d.ts
vendored
Normal file
19
types/base.d.ts
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
export class PlivoGenericResponse {
|
||||
constructor(params: object, idString: string);
|
||||
id: string;
|
||||
}
|
||||
export class PlivoResource {
|
||||
constructor(action: string, Klass: Symbol, idField: string, request: any);
|
||||
update(params: object, id: string): Promise<any>;
|
||||
delete(params: object): Promise<any>;
|
||||
executeAction(task: string, method: string, params: {}, action: string): Promise<any>;
|
||||
customexecuteAction(url: string, method?: string, params?: {}): Promise<any>;
|
||||
customexecuteGetNumberAction(url: string, method?: string, params?: {}): any;
|
||||
getMetaResponse(url: string, method?: string, params?: {}): Promise<any>;
|
||||
}
|
||||
export class PlivoResourceInterface {
|
||||
constructor(action: string, Klass: Symbol, idField: string, request: any);
|
||||
get(id: string, params?: {}): Promise<any>;
|
||||
list(params: object): Promise<any>;
|
||||
create(params: object): Promise<any>;
|
||||
}
|
||||
172
types/resources/accounts.d.ts
vendored
Normal file
172
types/resources/accounts.d.ts
vendored
Normal file
|
|
@ -0,0 +1,172 @@
|
|||
/**
|
||||
* Represents a SubAccount
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class GetAccountDetails {
|
||||
constructor(params: object);
|
||||
accountType: string;
|
||||
address: string;
|
||||
apiId: string;
|
||||
autoRecharge: string;
|
||||
billingMode: string;
|
||||
cashCredits: string;
|
||||
city: string;
|
||||
name: string;
|
||||
resourceUri: string;
|
||||
state: string;
|
||||
timezone: string;
|
||||
}
|
||||
export class CreateSubAccountResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
authId: string;
|
||||
authToken: string;
|
||||
message: string;
|
||||
}
|
||||
export class UpdateSubAccountDetails {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
}
|
||||
export class UpdateAccountDetailsResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
}
|
||||
export class GetSubAccountDetails {
|
||||
constructor(params: object);
|
||||
account: string;
|
||||
apiId: string;
|
||||
authId: string;
|
||||
authToken: string;
|
||||
created: string;
|
||||
enabled: string;
|
||||
modified: string;
|
||||
name: string;
|
||||
resourceUri: string;
|
||||
}
|
||||
export class Subaccount extends PlivoResource {
|
||||
constructor(client: Function, data?: {});
|
||||
id: string;
|
||||
/**
|
||||
* update subaccount
|
||||
* @method
|
||||
* @param {string} name - name of subaccount
|
||||
* @param {boolean} enabled - make account enable or disable
|
||||
* @promise {Subaccount} return object of subaccount
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(name: string, enabled: boolean): Promise<UpdateSubAccountDetails>;
|
||||
/**
|
||||
* delete subaccount
|
||||
* @method
|
||||
* @param {boolean} cascade - delete associated applications, phonenumbers & endpoints
|
||||
* @promise {boolean} return true if subaccount deleted
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(cascade: boolean): Promise<unknown>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
/**
|
||||
* Represents a Subaccount Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class SubaccountInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
/**
|
||||
* get subaccount by id
|
||||
* @method
|
||||
* @param {string} id - id of subaccount
|
||||
* @promise {Subaccount} return object of subaccount
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id: string): Promise<GetSubAccountDetails>;
|
||||
/**
|
||||
* create subaccount
|
||||
* @method
|
||||
* @param {string} name - name of subaccount
|
||||
* @param {boolean} enabled - enable or disable subaccount
|
||||
* @promise {PlivoGenericResponse} return object of PlivoGenericObject
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
create(name: string, enabled: boolean): Promise<CreateSubAccountResponse>;
|
||||
/**
|
||||
* update subaccount
|
||||
* @method
|
||||
* @param {id} id - id of subaccount
|
||||
* @param {string} name - name of subaccount
|
||||
* @param {boolean} enabled - make account enable or disable
|
||||
* @promise {Subaccount} return object of subaccount
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(id: string, name: string, enabled: boolean): Promise<UpdateSubAccountDetails>;
|
||||
/**
|
||||
* delete subaccount
|
||||
* @method
|
||||
* @param {id} id - id of subaccount
|
||||
* @param {boolean} cascade - delete associated applications, phonenumbers & endpoints
|
||||
* @promise {boolean} return true if subaccount deleted
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(id: string, cascade: boolean): Promise<any>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
/**
|
||||
* Represents a Account
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class Account extends PlivoResource {
|
||||
constructor(client: Function, data?: {});
|
||||
id: string;
|
||||
/**
|
||||
* get account detail
|
||||
* @method
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(): Promise<any>;
|
||||
update(params: object): Promise<UpdateAccountDetailsResponse>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
/**
|
||||
* Represents a Account Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class AccountInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
/**
|
||||
* get account detail
|
||||
* @method
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(): Promise<GetAccountDetails>;
|
||||
/**
|
||||
* update account detail
|
||||
* @method
|
||||
* @param {object} params - parameters
|
||||
* @param {string} [params.name] - name of account
|
||||
* @param {string} [params.city] - city of account
|
||||
* @param {string} [params.address] - address of account
|
||||
* @promise {Account} return Account object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(params: {
|
||||
name: string;
|
||||
city: string;
|
||||
address: string;
|
||||
}): Promise<UpdateAccountDetailsResponse>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
import { PlivoResource } from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import { PlivoResourceInterface } from "../base";
|
||||
export {};
|
||||
163
types/resources/applications.d.ts
vendored
Normal file
163
types/resources/applications.d.ts
vendored
Normal file
|
|
@ -0,0 +1,163 @@
|
|||
/**
|
||||
* Represents a Application
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class UpdateApplicationResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
}
|
||||
export class CreateApplicationResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
appId: string;
|
||||
message: string;
|
||||
}
|
||||
export class RetrieveApplicationResponse {
|
||||
constructor(params: object);
|
||||
answerMethod: string;
|
||||
answerUrl: string;
|
||||
apiId: string;
|
||||
appId: string;
|
||||
appName: string;
|
||||
applicationType: string;
|
||||
defaultApp: string;
|
||||
defaultEndpointApp: string;
|
||||
enabled: string;
|
||||
fallbackAnswerUrl: string;
|
||||
fallbackMethod: string;
|
||||
hangupMethod: string;
|
||||
logIncomingMessage: string;
|
||||
messageMethod: string;
|
||||
resourceUri: string;
|
||||
sipUri: string;
|
||||
subAccount: string;
|
||||
}
|
||||
export class ListAllApplicationResponse {
|
||||
constructor(params: object);
|
||||
answerMethod: string;
|
||||
answerUrl: string;
|
||||
appId: string;
|
||||
appName: string;
|
||||
applicationType: string;
|
||||
defaultApp: string;
|
||||
defaultEndpointApp: string;
|
||||
enabled: string;
|
||||
fallbackAnswerUrl: string;
|
||||
fallbackMethod: string;
|
||||
hangupMethod: string;
|
||||
logIncomingMessage: string;
|
||||
messageMethod: string;
|
||||
resourceUri: string;
|
||||
sipUri: string;
|
||||
subAccount: string;
|
||||
}
|
||||
export class Application extends PlivoResource {
|
||||
constructor(client: Function, data?: {});
|
||||
id: string;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
/**
|
||||
* Represents a Application interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class ApplicationInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
/**
|
||||
* get application by given id
|
||||
* @method
|
||||
* @param {string} id - id of application
|
||||
* @promise {object} return {@link Application} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id: string): Promise<RetrieveApplicationResponse>;
|
||||
/**
|
||||
* list applications
|
||||
* @method
|
||||
* @param {object} params - params to list applications
|
||||
* @param {string} [params.subaccount] - ID of the subaccount if present
|
||||
* @param {integer} [params.limit] - To display no of results per page
|
||||
* @param {integer} [params.offset] - No of value items by which results should be offset
|
||||
*/
|
||||
list(params?: {}): Promise<ListAllApplicationResponse>;
|
||||
/**
|
||||
* create Application
|
||||
* @method
|
||||
* @param {string} appName - name of application
|
||||
* @param {object} params - params to create application
|
||||
* @param {string} [params.answerUrl] - answer url
|
||||
* @param {string} [params.appName] The name of your application
|
||||
* @param {string} [params.answerUrl] The URL invoked by Plivo when a call executes this application.
|
||||
* @param {string} [params.answerMethod] The method used to call the answer_url. Defaults to POST.
|
||||
* @param {string} [params.hangupUrl] The URL that is notified by Plivo when the call hangs up.
|
||||
* @param {string} [params.hangupMethod] The method used to call the hangup_url. Defaults to POST
|
||||
* @param {string} [params.fallbackAnswerUrl] Invoked by Plivo only if answer_url is unavailable or the XML response is invalid. Should contain a XML response.
|
||||
* @param {string} [params.fallbackMethod] The method used to call the fallback_answer_url. Defaults to POST.
|
||||
* @param {string} [params.messageUrl] The URL that is notified by Plivo when an inbound message is received. Defaults not set.
|
||||
* @param {string} [params.messageMethod] The method used to call the message_url. Defaults to POST.
|
||||
* @param {boolean} [params.defaultNumberApp] If set to true, associates all newly created Plivo numbers that have not specified an app_id, to this application.
|
||||
* @param {boolean} [params.defaultEndpointApp] If set to true, associates all newly created Plivo endpoints that have not specified an app_id, to this application.
|
||||
* @param {string} [params.subaccount] Id of the subaccount, in case only subaccount applications are needed.
|
||||
* @param {boolean} [params.logIncomingMessages] flag to control incoming message logs.
|
||||
* @promise {object} return {@link PlivoGenericResponse} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
create(appName: string, params?: {}): Promise<CreateApplicationResponse>;
|
||||
/**
|
||||
* update Application
|
||||
* @method
|
||||
* @param {string} id - id of application
|
||||
* @param {object} params - to update application
|
||||
* @param {string} [params.answerUrl] The URL invoked by Plivo when a call executes this application.
|
||||
* @param {string} [params.answerMethod] The method used to call the answer_url. Defaults to POST.
|
||||
* @param {string} [params.hangupUrl] The URL that is notified by Plivo when the call hangs up.
|
||||
* @param {string} [params.hangupMethod] The method used to call the hangup_url. Defaults to POST
|
||||
* @param {string} [params.fallbackAnswerUrl] Invoked by Plivo only if answer_url is unavailable or the XML response is invalid. Should contain a XML response.
|
||||
* @param {string} [params.fallbackMethod] The method used to call the fallback_answer_url. Defaults to POST.
|
||||
* @param {string} [params.messageUrl] The URL that is notified by Plivo when an inbound message is received. Defaults not set.
|
||||
* @param {string} [params.messageMethod] The method used to call the message_url. Defaults to POST.
|
||||
* @param {boolean} [params.defaultNumberApp] If set to true, associates all newly created Plivo numbers that have not specified an app_id, to this application.
|
||||
* @param {boolean} [params.defaultEndpointApp] If set to true, associates all newly created Plivo endpoints that have not specified an app_id, to this application.
|
||||
* @param {string} [params.subaccount] Id of the subaccount, in case only subaccount applications are needed.
|
||||
* @param {boolean} [params.logIncomingMessages] flag to control incoming message logs.
|
||||
* @promise {object} return {@link Application} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(id: string, params: {
|
||||
answerUrl: string;
|
||||
answerMethod: string;
|
||||
hangupUrl: string;
|
||||
hangupMethod: string;
|
||||
fallbackAnswerUrl: string;
|
||||
fallbackMethod: string;
|
||||
messageUrl: string;
|
||||
messageMethod: string;
|
||||
defaultNumberApp: boolean;
|
||||
defaultEndpointApp: boolean;
|
||||
subaccount: string;
|
||||
logIncomingMessages: boolean;
|
||||
}): Promise<UpdateApplicationResponse>;
|
||||
/**
|
||||
* delete Application
|
||||
* @method
|
||||
* @param {string} id - id of application
|
||||
* @param {object} params - params to delete application
|
||||
* @param {boolean} [params.cascade] - delete associated endpoints
|
||||
* @param {string} [params.newEndpointApplication] - link associated endpoints with app
|
||||
* @promise {object} return true on success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(id: string, params?: {
|
||||
cascade: boolean;
|
||||
newEndpointApplication: string;
|
||||
}): Promise<any>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
import { PlivoResource } from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import { PlivoResourceInterface } from "../base";
|
||||
export {};
|
||||
446
types/resources/call.d.ts
vendored
Normal file
446
types/resources/call.d.ts
vendored
Normal file
|
|
@ -0,0 +1,446 @@
|
|||
export class CallTransferResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
callUuids: object;
|
||||
message: string;
|
||||
}
|
||||
export class ListAllQueuedCalls {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
calls: object;
|
||||
}
|
||||
export class ListAllLiveCallResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
callUuid: object;
|
||||
}
|
||||
export class CreateCallResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
requestUuid: string;
|
||||
}
|
||||
export class GetQueuedCallResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
direction: string;
|
||||
from: string;
|
||||
callStatus: string;
|
||||
to: string;
|
||||
callerName: string;
|
||||
callUuid: string;
|
||||
requestUuid: string;
|
||||
}
|
||||
export class GetLiveCallResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
callStatus: string;
|
||||
callUuid: string;
|
||||
callerName: string;
|
||||
direction: string;
|
||||
from: string;
|
||||
requestUuid: string;
|
||||
sessionStart: string;
|
||||
to: string;
|
||||
}
|
||||
export class RetrieveCallResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
answerTime: string;
|
||||
billDuration: string;
|
||||
billedDuration: string;
|
||||
callDirection: string;
|
||||
callDuration: string;
|
||||
callState: string;
|
||||
callUuid: string;
|
||||
conferenceUuid: string;
|
||||
endTime: string;
|
||||
fromNumber: string;
|
||||
hangupCauseCode: string;
|
||||
hangupCauseName: string;
|
||||
hangupSource: string;
|
||||
initiationTime: string;
|
||||
parentCallUuid: string;
|
||||
resourceUri: string;
|
||||
toNumber: string;
|
||||
totalAmount: string;
|
||||
totalRate: string;
|
||||
}
|
||||
export class ListAllCallsResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
answerTime: string;
|
||||
billDuration: string;
|
||||
billedDuration: string;
|
||||
callDirection: string;
|
||||
callDuration: string;
|
||||
callState: string;
|
||||
callUuid: string;
|
||||
conferenceUuid: string;
|
||||
endTime: string;
|
||||
fromNumber: string;
|
||||
hangupCauseCode: string;
|
||||
hangupCauseName: string;
|
||||
hangupSource: string;
|
||||
initiationTime: string;
|
||||
parentCallUuid: string;
|
||||
resourceUri: string;
|
||||
toNumber: string;
|
||||
totalAmount: string;
|
||||
totalRate: string;
|
||||
}
|
||||
export class StartPlayingMusicResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
}
|
||||
export class StartSpeakingTextResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
}
|
||||
export class SendDigitsResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
}
|
||||
export class RecordCallResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
recordingId: string;
|
||||
url: string;
|
||||
}
|
||||
/**
|
||||
* Represents a Call
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class Call extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
id: string;
|
||||
/**
|
||||
* hangup call
|
||||
* @method
|
||||
* @promise {Boolean} return true if call hung up
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
hangup(): Promise < any > ;
|
||||
/**
|
||||
* transfer call
|
||||
* @method
|
||||
* @param {object} params - optional params to transfer a call
|
||||
* @param {string} [params.legs] aleg, bleg or both Defaults to aleg. aleg will transfer call_uuid ; bleg will transfer the bridged leg (if found) of call_uuid ; both will transfer call_uuid and bridged leg of call_uuid
|
||||
* @param {string} [params.alegUrl] URL to transfer for aleg, if legs is aleg or both, then aleg_url has to be specified.
|
||||
* @param {string} [params.alegMethod] HTTP method to invoke aleg_url. Defaults to POST.
|
||||
* @param {string} [params.blegUrl] URL to transfer for bridged leg, if legs is bleg or both, then bleg_url has to be specified.
|
||||
* @param {string} [params.blegMethod] HTTP method to invoke bleg_url. Defaults to POST.
|
||||
* @promise {object} return call object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
transfer(params: {
|
||||
legs: string;
|
||||
alegUrl: string;
|
||||
alegMethod: string;
|
||||
blegUrl: string;
|
||||
blegMethod: string;
|
||||
}, callUUid: string): Promise < CallTransferResponse > ;
|
||||
/**
|
||||
* record call
|
||||
* @method
|
||||
* @param {object} params - to record call
|
||||
* @promise {object} return PlivoGenericResponse Object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
record(params: object): Promise < any > ;
|
||||
/**
|
||||
* record call
|
||||
* @method
|
||||
* @param {object} params - to record call
|
||||
* @promise {object} return PlivoGenericResponse Object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
startRecording(params: object): Promise < RecordCallResponse > ;
|
||||
/**
|
||||
* stop recording call
|
||||
* @method
|
||||
* @param {object} params - to stop recording call
|
||||
* @promise {object} return PlivoGenericResponse Object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
stopRecording(params: object): Promise < any > ;
|
||||
/**
|
||||
* play music for call
|
||||
* @method
|
||||
* @param {string} url - url which contains audio to play for call
|
||||
* @param {object} optionalParams - to stop recording call
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
playMusic(url: string, optionalParams: object): Promise < any > ;
|
||||
/**
|
||||
* play music for call
|
||||
* @method
|
||||
* @param {string} url - url which contains audio to play for call
|
||||
* @param {object} optionalParams - to stop recording call
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
startPlayingMusic(urls: any, optionalParams: object): Promise < StartPlayingMusicResponse > ;
|
||||
/**
|
||||
* stop playing music for call
|
||||
* @method
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
stopPlayingMusic(): Promise < any > ;
|
||||
/**
|
||||
* speak text for call
|
||||
* @method
|
||||
* @param {string} text - text to speak for call
|
||||
* @param {object} optionalParams - to speak for call
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
speakText(text: string, optionalParams: object): Promise < any > ;
|
||||
/**
|
||||
* speak text for call
|
||||
* @method
|
||||
* @param {string} text - text to speak for call
|
||||
* @param {object} optionalParams - to speak for call
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
startSpeakingText(text: string, optionalParams: object): Promise < StartSpeakingTextResponse > ;
|
||||
/**
|
||||
* stop speaking text for call
|
||||
* @method
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
stopSpeakingText(): Promise < any > ;
|
||||
/**
|
||||
* Send digits on a call
|
||||
* @method
|
||||
* @param {number} digits - digits to be send
|
||||
* @param {object} optionalParams - to send digits for call
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
sendDigits(digits: number, optionalParams: object): Promise < SendDigitsResponse > ;
|
||||
/**
|
||||
* Hangup a Call Request
|
||||
* @method
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
cancel(): Promise < any > ;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
/**
|
||||
* Represents a Call Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class CallInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data ? : {});
|
||||
/**
|
||||
* Get A Call Detail
|
||||
* @method
|
||||
* @param {string} id - call uuid to get information of.
|
||||
* @promise {object} returns Call Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
get(id: string): Promise < RetrieveCallResponse > ;
|
||||
/**
|
||||
* Get All Call Detail
|
||||
* @method
|
||||
* @param {object} params - params to get all call details.
|
||||
* @promise {object[]} returns list of Call Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
list(params: object): Promise < ListAllCallsResponse > ;
|
||||
/**
|
||||
* Create a call
|
||||
* @method
|
||||
* @param {string} from - The phone number to be used as the caller id (with the country code).For e.g, a USA caller id number could be, 15677654321, with '1' for the country code.
|
||||
* @param {string} to - The regular number(s) or sip endpoint(s) to call. Regular number must be prefixed with country code but without the + sign). For e.g, to dial a number in the USA, the number could be, 15677654321, with '1' for the country code. Multiple numbers can be sent by using a delimiter. For e.g. 15677654321<12077657621<12047657621. Sip endpoints must be prefixed with sip: E.g., sip:john1234@phone.plivo.com. To make bulk calls, the delimiter < is used. For example, 15677654321<15673464321<sip:john1234@phone.plivo.com Yes, you can mix regular numbers and sip endpoints.
|
||||
* @param {string} answerUrl - The URL invoked by Plivo when the outbound call is answered.
|
||||
* @param {object} params - optional params to make a call
|
||||
* @param {string} [params.answerUrl] The URL invoked by Plivo when a call executes this application.
|
||||
* @param {string} [params.answerMethod] The method used to call the answer_url. Defaults to POST.
|
||||
* @param {string} [params.hangupUrl] The URL that is notified by Plivo when the call hangs up.
|
||||
* @param {string} [params.hangupMethod] The method used to call the hangup_url. Defaults to POST
|
||||
* @param {string} [params.fallbackAnswerUrl] Invoked by Plivo only if answer_url is unavailable or the XML response is invalid. Should contain a XML response.
|
||||
* @param {string} [params.fallbackMethod] The method used to call the fallback_answer_url. Defaults to POST.
|
||||
* @param {string} [params.callerName] Caller name to use with the call.
|
||||
* @param {string} [params.sendDigits] Each 'w' character waits 0.5 second before sending a digit. Each 'W' character waits 1 second before sending a digit. You can also add the tone duration in ms by appending @duration after the string (default duration is 2000 ms). For example, 1w2w3@1000
|
||||
* @param {boolean} [params.sendOnPreanswer] If set to true and send_digits is also set, digits are sent when the call is in preanswer state. Defaults to false.
|
||||
* @param {number} [params.timeLimit] Schedules the call for hangup at a specified time after the call is answered. Value should be an integer > 0(in seconds).
|
||||
* @param {number} [params.hangupOnRing] Schedules the call for hangup at a specified time after the call starts ringing. Value should be an integer >= 0 (in seconds).
|
||||
* @param {string} [params.machineDetection] Used to detect if the call has been answered by a machine. The valid values are true and hangup.
|
||||
* @param {number} [params.machineDetectionTime] Time allotted to analyze if the call has been answered by a machine. It should be an integer >= 2000 and <= 10000 and the unit is ms. The default value is 5000 ms.
|
||||
* @param {string} [params.machineDetectionUrl] A URL where machine detection parameters will be sent by Plivo. This parameter should be used to make machine detection asynchronous
|
||||
* @param {string} [params.machineDetectionMethod] The HTTP method which will be used by Plivo to request the machine_detection_url. Defaults to POST.
|
||||
* @param {string} [params.sipHeaders] List of SIP headers in the form of 'key=value' pairs, separated by commas.
|
||||
* @param {number} [params.ringTimeout] Determines the time in seconds the call should ring. If the call is not answered within the ring_timeout value or the default value of 120s, it is canceled.
|
||||
* @param {string} [params.parentCallUuid] The call_uuid of the first leg in an ongoing conference call. It is recommended to use this parameter in scenarios where a member who is already present in the conference intends to add new members by initiating outbound API calls.
|
||||
* @param {boolean} [params.errorIfParentNotFound] if set to true and the parent_call_uuid cannot be found, the API request would return an error. If set to false, the outbound call API request will be executed even if the parent_call_uuid is not found. Defaults to false.
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
create(from: string, to: string, answerUrl: string, params ? : {}): Promise < CreateCallResponse > ;
|
||||
/**
|
||||
* Hangup A Specific Call
|
||||
* @method
|
||||
* @param {string} callUUID - call uuid to hangup call
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
hangup(callUUID: string): Promise < any > ;
|
||||
/**
|
||||
* Transfer a Call
|
||||
* @method
|
||||
* @param {string} callUUID - call uuid to transfer call
|
||||
* @param {object} params - optional params to transfer a call
|
||||
* @param {string} [params.legs] aleg, bleg or both Defaults to aleg. aleg will transfer call_uuid ; bleg will transfer the bridged leg (if found) of call_uuid ; both will transfer call_uuid and bridged leg of call_uuid
|
||||
* @param {string} [params.alegUrl] URL to transfer for aleg, if legs is aleg or both, then aleg_url has to be specified.
|
||||
* @param {string} [params.alegMethod] HTTP method to invoke aleg_url. Defaults to POST.
|
||||
* @param {string} [params.blegUrl] URL to transfer for bridged leg, if legs is bleg or both, then bleg_url has to be specified.
|
||||
* @param {string} [params.blegMethod] HTTP method to invoke bleg_url. Defaults to POST.
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
transfer(callUUID: string, params: {
|
||||
legs: string;
|
||||
alegUrl: string;
|
||||
alegMethod: string;
|
||||
blegUrl: string;
|
||||
blegMethod: string;
|
||||
}): Promise < any > ;
|
||||
/**
|
||||
* Record a Call
|
||||
* @method
|
||||
* @param {string} callUUID - call uuid to record call
|
||||
* @param {object} optionalParams - optional params to record a call
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
record(callUUID: string, optionalParams: object): Promise < any > ;
|
||||
/**
|
||||
* Stop Recording a Call
|
||||
* @method
|
||||
* @param {string} callUUID - call uuid to stop recording a call
|
||||
* @param {object} optionalParams - optional params to stop recording a call
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
stopRecording(callUUID: string, optionalParams: object): Promise < any > ;
|
||||
/**
|
||||
* Play a music file
|
||||
* @method
|
||||
* @param {string} callUUID - call uuid to play music file
|
||||
* @param {string} url - A single URL or a list of comma separated URLs linking to an mp3 or wav file.
|
||||
* @param {object} optionalParams - optional params to play music file.
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
playMusic(callUUID: string, urls: any, optionalParams: object): Promise < any > ;
|
||||
/**
|
||||
* Stop Playing a music file
|
||||
* @method
|
||||
* @param {string} callUUID - call uuid to stop plaing music file
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
stopPlayingMusic(callUUID: string): Promise < any > ;
|
||||
/**
|
||||
* Speak text during a call
|
||||
* @method
|
||||
* @param {string} callUUID - call uuid to speak text during a call
|
||||
* @param {string} text - text to be played.
|
||||
* @param {object} optionalParams - optional params to speak text during a call
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
speakText(callUUID: string, text: string, optionalParams: object): Promise < any > ;
|
||||
/**
|
||||
* Stop Speaking text during a call
|
||||
* @method
|
||||
* @param {string} callUUID - call uuid to stop speaking text during a call
|
||||
* @param {object} optionalParams - optional params to stop speaking text during a call
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
stopSpeakingText(callUUID: string): Promise < any > ;
|
||||
/**
|
||||
* Send digits on a call
|
||||
* @method
|
||||
* @param {string} callUUID - call uuid to send digits on a call
|
||||
* @param {number} digits - digits to be send
|
||||
* @param {object} optionalParams - optional params to send digits
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
sendDigits(callUUID: string, digits: number, optionalParams: object): Promise < any > ;
|
||||
/**
|
||||
* Hangup a call request
|
||||
* @method
|
||||
* @param {string} callUUID - call uuid to send digits on a call
|
||||
* @promise {object} returns PlivoGenericResponse Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
cancel(id: string): Promise < any > ;
|
||||
listLiveCalls(params: object): Promise < any > ;
|
||||
getLiveCall(id: string): Promise < any > ;
|
||||
listQueuedCalls(): Promise < any > ;
|
||||
getQueuedCall(id: string): Promise < any > ;
|
||||
[clientKey]: symbol;
|
||||
[liveCallInterfaceKey]: LiveCallInterface;
|
||||
[queuedCallInterfaceKey]: QueuedCallInterface;
|
||||
}
|
||||
export class LiveCallResource extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
id: string;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
export class QueuedCallResource extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
id: string;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
import {
|
||||
PlivoResource
|
||||
} from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import {
|
||||
PlivoResourceInterface
|
||||
} from "../base";
|
||||
declare const liveCallInterfaceKey: unique symbol;
|
||||
/**
|
||||
* Represents a LiveCall interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
declare class LiveCallInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data ? : {});
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
declare const queuedCallInterfaceKey: unique symbol;
|
||||
/**
|
||||
* Represents a QueuedCall interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
|
||||
declare class QueuedCallInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data ? : {});
|
||||
get(id: string): Promise < GetQueuedCallResponse > ;
|
||||
list(): Promise < ListAllQueuedCalls > ;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
export {};
|
||||
26
types/resources/callFeedback.d.ts
vendored
Normal file
26
types/resources/callFeedback.d.ts
vendored
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
export class CallFeedbackResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
status: string;
|
||||
}
|
||||
export class CallFeedback extends PlivoResource {
|
||||
constructor(client: Function, data?: {});
|
||||
id: string;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
/**
|
||||
* Represents a CallFeedback Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class CallFeedbackInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
create(callUUID: string, rating: string, issues?: never[], notes?: string): Promise<CallFeedbackResponse>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
import { PlivoResource } from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import { PlivoResourceInterface } from "../base";
|
||||
export {};
|
||||
146
types/resources/complianceApplications.d.ts
vendored
Normal file
146
types/resources/complianceApplications.d.ts
vendored
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
export class ComplianceApplicationResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
complianceApplicationId: string;
|
||||
endUserID: string;
|
||||
endUserType: string;
|
||||
alias: string;
|
||||
status: string;
|
||||
countryIso2: string;
|
||||
numberType: string;
|
||||
complianceRequirementId: string;
|
||||
documents: Array<Object>;
|
||||
createdAt: string;
|
||||
}
|
||||
|
||||
export class CreateComplianceApplicationResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
complianceApplicationId: string;
|
||||
endUserID: string;
|
||||
endUserType: string;
|
||||
alias: string;
|
||||
status: string;
|
||||
countryIso2: string;
|
||||
numberType: string;
|
||||
complianceRequirementId: string;
|
||||
documents: Array<Object>;
|
||||
createdAt: string;
|
||||
message: string;
|
||||
}
|
||||
|
||||
export class UpdateComplianceApplicationResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
}
|
||||
|
||||
export class ListComplianceApplicationResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
meta: Object;
|
||||
objects: Array<Object>;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a ComplianceApplication
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class ComplianceApplication extends PlivoResource {
|
||||
constructor(client: Function, data?: {});
|
||||
id: string;
|
||||
|
||||
/**
|
||||
* update ComplianceApplication
|
||||
* @method
|
||||
* @param {string} id - id to update
|
||||
* @param {object} params
|
||||
* @param {string} [params.documentIds] - Document IDs
|
||||
* @promise {object} return {@link ComplianceApplication} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(params: object, id: string): Promise<UpdateComplianceApplicationResponse>;
|
||||
|
||||
/**
|
||||
* delete an Compliance application
|
||||
* @method
|
||||
* @param {string} id - id to delete
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(): Promise<unknown>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a ComplianceApplication Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class ComplianceApplicationInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
/**
|
||||
* get application by given id
|
||||
* @method
|
||||
* @param {string} id - id of application
|
||||
* @promise {object} return {@link EndUser} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id: string): Promise<ComplianceApplicationResponse>;
|
||||
|
||||
/**
|
||||
* list all applications
|
||||
* @method
|
||||
* @param {object} params - params to list endusers
|
||||
* @param {string} [params.status] - Status of the application
|
||||
* @param {string} [params.endUserId] - End user ID related to application
|
||||
* @param {string} [params.numberType] -Number Type related to application
|
||||
* @param {integer} [params.offset] - No of value items by which results should be offset
|
||||
* @param {integer} [params.limit] - No of value items by which results should be offset
|
||||
*/
|
||||
list(params: object): Promise<ListComplianceApplicationResponse>;
|
||||
|
||||
/**
|
||||
* Create a complaince application
|
||||
* @method
|
||||
* @param {object} params
|
||||
* @param {string} [params.complianceRequirementId] - compliance requirement ID.
|
||||
* @param {string} [params.endUserId] - End user ID.
|
||||
* @param {string} [params.alias] - Alias
|
||||
* @param {string} [params.documentIds] - Document IDs
|
||||
* @param {string} [params.endUserType] - End user type
|
||||
* @param {string} [params.countryIso2] - CountryISo2
|
||||
* @param {string} [params.numberType] - Number Type
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
create(params: object): Promise<CreateComplianceApplicationResponse>;
|
||||
|
||||
/**
|
||||
* update ComplianceApplication
|
||||
* @method
|
||||
* @param {string} id - id to update
|
||||
* @param {object} params
|
||||
* @param {string} [params.documentIds] - Document IDs
|
||||
* @promise {object} return {@link ComplianceApplication} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(id: string, params: object): Promise<UpdateComplianceApplicationResponse>;
|
||||
|
||||
/**
|
||||
* delete a ComplianceApplication
|
||||
* @method
|
||||
* @param {string} id - id to delete
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(id: string): any;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
|
||||
import { PlivoResource } from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import { PlivoResourceInterface } from "../base";
|
||||
export {};
|
||||
65
types/resources/complianceDocumentTypes.d.ts
vendored
Normal file
65
types/resources/complianceDocumentTypes.d.ts
vendored
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
export class ComplianceDocumentTypeResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
documentTypeID: string;
|
||||
documentName: string;
|
||||
description: string;
|
||||
information: object;
|
||||
proofRequired: string;
|
||||
createdAt: string;
|
||||
}
|
||||
|
||||
export class ListComplianceDocumentTypeResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
objects: Array<Object>;
|
||||
meta: Object;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a Compliance Document Type.
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class ComplianceDocumentType extends PlivoResource {
|
||||
constructor(client: Function, data?: {});
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a ComplianceDocumentTypeInterface Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class ComplianceDocumentTypeInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
|
||||
/**
|
||||
* get compliance document types by id
|
||||
* @method
|
||||
* @param {string} id - id of the compliane document type.
|
||||
* @promise {object} return {@link ComplianceDocumentType} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id: string): Promise<ComplianceDocumentTypeResponse>;
|
||||
|
||||
|
||||
/**
|
||||
* list compliance document types
|
||||
* @method
|
||||
* @param {object} params - params to list endusers
|
||||
* @param {string} [params.documentTypeID] - Document Type ID of the document id.
|
||||
* @param {string} [params.documentName] - Document name of the document if present.
|
||||
* @param {string} [params.description] - Description of the document type.
|
||||
* @param {string} [params.information] - Information about the document type.
|
||||
* @param {string} [params.proofRequired] - Proofs required for the document.
|
||||
*/
|
||||
list(params: object): Promise<ListComplianceDocumentTypeResponse>;
|
||||
}
|
||||
|
||||
import { PlivoResource } from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import { PlivoResourceInterface } from "../base";
|
||||
export {};
|
||||
134
types/resources/complianceDocuments.d.ts
vendored
Normal file
134
types/resources/complianceDocuments.d.ts
vendored
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
export class ComplianceDocumentResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
documentTypeId: string;
|
||||
complianceDocumentId: string;
|
||||
documentId: string;
|
||||
alias: string;
|
||||
metaInformation: string;
|
||||
file: string;
|
||||
fileName: string;
|
||||
createdAt: string;
|
||||
}
|
||||
|
||||
export class CreateComplianceDocumentResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
documentTypeId: string;
|
||||
complianceDocumentId: string;
|
||||
documentId: string;
|
||||
endUserId: string;
|
||||
alias: string;
|
||||
message: string;
|
||||
metaInformation: string;
|
||||
fileName: string;
|
||||
createdAt: string;
|
||||
}
|
||||
|
||||
export class ListComplianceDocumentResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
meta: Object;
|
||||
objects: Array<Object>;
|
||||
}
|
||||
|
||||
export class UpdateComplianceDocumentResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
}
|
||||
/**
|
||||
* Represents a Compliance Document
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class ComplianceDocument extends PlivoResource {
|
||||
constructor(client: Function, data?: {});
|
||||
id: string;
|
||||
|
||||
/**
|
||||
* update Compliance Document
|
||||
* @method
|
||||
* @param {string} id - compliance document id of the document.
|
||||
* @param {object} params - optional params array of updated values
|
||||
* @promise {object} return {@link ComplianceDocument} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(params: object, id: string): Promise<UpdateComplianceDocumentResponse>;
|
||||
|
||||
/**
|
||||
* delete an Compliance Document
|
||||
* @method
|
||||
* @param {string} id - id to delete
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(): Promise<unknown>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a ComplianceDocument Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class ComplianceDocumentInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
|
||||
/**
|
||||
* get compliance document by given id
|
||||
* @method
|
||||
* @param {string} id - id of the document
|
||||
* @promise {object} return {@link ComplianceDocument} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id: string): Promise<ComplianceDocumentResponse>;
|
||||
|
||||
|
||||
/**
|
||||
* list all documents
|
||||
* @method
|
||||
* @param {object} params - params containing options to list compliance documents by.
|
||||
*/
|
||||
list(params: object): Promise<ListComplianceDocumentResponse>;
|
||||
|
||||
/**
|
||||
* Create a complaince document
|
||||
* @method
|
||||
* @param {object} params
|
||||
* @param {string} [params.complianceRequirementId] - compliance requirement ID.
|
||||
* @param {string} [params.endUserId] - End user ID.
|
||||
* @param {string} [params.alias] - Alias
|
||||
* @param {string} [params.documentTypeId] - Document Type ID
|
||||
* @param {string} [params.file] - File array of the files to be uploaded
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
create(params: object): Promise<CreateComplianceDocumentResponse>;
|
||||
|
||||
/**
|
||||
* update Compliance Document
|
||||
* @method
|
||||
* @param {string} id - compliance document id of the document.
|
||||
* @param {object} params - optional params array of updated values
|
||||
* @promise {object} return {@link ComplianceDocument} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(id: string, params: object): Promise<UpdateComplianceDocumentResponse>;
|
||||
|
||||
/**
|
||||
* delete a Compliance Document
|
||||
* @method
|
||||
* @param {string} id - id to delete
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(id: string): any;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
|
||||
import { PlivoResource } from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import { PlivoResourceInterface } from "../base";
|
||||
export {};
|
||||
58
types/resources/complianceRequirements.d.ts
vendored
Normal file
58
types/resources/complianceRequirements.d.ts
vendored
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
export class ComplianceRequirementResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
ComplianceRequirementId: string;
|
||||
countryIso2: string;
|
||||
numberType: string;
|
||||
endUserType: object;
|
||||
acceptableDocumentTypes: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a Compliance Requirement
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class ComplianceRequirement extends PlivoResource {
|
||||
constructor(client: Function, data?: {});
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a Compliance Requirement
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class ComplianceRequirementInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
|
||||
/**
|
||||
* get compliance requirement by given id
|
||||
* @method
|
||||
* @param {string} id - id of the compliance requirement
|
||||
* @promise {object} return {@link ComplianceRequirement} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id: string): Promise<ComplianceRequirementResponse>;
|
||||
|
||||
|
||||
/**
|
||||
* list compliance requirements
|
||||
* @method
|
||||
* @param {object} params - params to list endusers
|
||||
* @param {string} [params.countryIso2] - Document Type ID of the document id.
|
||||
* @param {string} [params.numberType] - Document name of the document if present.
|
||||
* @param {string} [params.phoneNumber] - Description of the document type.
|
||||
* @param {string} [params.endUserType] - Information about the document type.
|
||||
* A combination of country_iso2, number_type, end_user_type OR
|
||||
* phone_number, end_user_type can be used to fetch compliance requirements.
|
||||
*/
|
||||
list(params: object): Promise<ComplianceRequirementResponse>;
|
||||
}
|
||||
|
||||
import { PlivoResource } from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import { PlivoResourceInterface } from "../base";
|
||||
export {};
|
||||
397
types/resources/conferences.d.ts
vendored
Normal file
397
types/resources/conferences.d.ts
vendored
Normal file
|
|
@ -0,0 +1,397 @@
|
|||
/**
|
||||
* Represents a Conference
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class MuteMemberResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
memberId: string;
|
||||
message: string;
|
||||
}
|
||||
export class StartRecordingConferenceResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
recordingId: string;
|
||||
url: string;
|
||||
}
|
||||
export class RetrieveConferenceResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
conferenceMemberCount: string;
|
||||
conferenceName: string;
|
||||
conferenceRunTime: string;
|
||||
members: string;
|
||||
}
|
||||
export class ListAllConferenceResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
conferences: string;
|
||||
}
|
||||
export class SpeakMemberResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
memberId: string;
|
||||
message: string;
|
||||
}
|
||||
export class PlayAudioMemberResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
memberId: string;
|
||||
message: string;
|
||||
}
|
||||
export class DeafMemberResponse {
|
||||
constructor(params: string);
|
||||
apiId: string;
|
||||
memberId: string;
|
||||
message: string;
|
||||
}
|
||||
export class Conference extends PlivoResource {
|
||||
constructor(client: Function, data?: {});
|
||||
id: string;
|
||||
/**
|
||||
* hangup conference
|
||||
* @method
|
||||
* @promise {Boolean} return true if call hung up
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
hangup(): Promise<any>;
|
||||
/**
|
||||
* hangup member from conference
|
||||
* @method
|
||||
* @param {string} memberId - id of member to be hangup
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
hangupMember(memberId: string): Promise<any>;
|
||||
/**
|
||||
* kick member from conference
|
||||
* @method
|
||||
* @param {string} memberId - id of member
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
kickMember(memberId: string): Promise<any>;
|
||||
/**
|
||||
* mute member from conference
|
||||
* @method
|
||||
* @param {string} memberId - id of member
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
muteMember(memberId: string): Promise<MuteMemberResponse>;
|
||||
/**
|
||||
* unmute member from conference
|
||||
* @method
|
||||
* @param {string} memberId - id of member
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
unmuteMember(memberId: string): Promise<any>;
|
||||
/**
|
||||
* deaf member from conference
|
||||
* @method
|
||||
* @param {string} memberId - id of member
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
deafMember(memberId: string): Promise<DeafMemberResponse>;
|
||||
/**
|
||||
* undeaf member from conference
|
||||
* @method
|
||||
* @param {string} memberId - id of member
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
undeafMember(memberId: string): Promise<any>;
|
||||
/**
|
||||
* play audio to member
|
||||
* @method
|
||||
* @param {string} memberId - id of member
|
||||
* @param {string} url - url for audio
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
playAudioToMember(memberId: string, url: string): Promise<PlayAudioMemberResponse>;
|
||||
/**
|
||||
* stop playing audio to member
|
||||
* @method
|
||||
* @param {string} memberId - id of member
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
stopPlayingAudioToMember(memberId: string): Promise<any>;
|
||||
/**
|
||||
* speak text to member
|
||||
* @method
|
||||
* @param {string} memberId - id of member
|
||||
* @param {string} text - text to be speak to member
|
||||
* @param {object} optionalParams - optionalPrams to speak text
|
||||
* @param {string} [optionalParams.voice] The voice to be used. Can be MAN or WOMAN. Defaults to WOMAN.
|
||||
* @param {string} [optionalParams.language] The language to be used. Defaults to en-US.
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
speakTextToMember(memberId: string, text: string, optionalParams: {
|
||||
voice: string;
|
||||
language: string;
|
||||
}): Promise<SpeakMemberResponse>;
|
||||
/**
|
||||
* stop speaking text to member
|
||||
* @method
|
||||
* @param {string} memberId - id of member
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
stopSpeakingTextToMember(memberId: string): Promise<any>;
|
||||
/**
|
||||
* Record conference
|
||||
* @method
|
||||
* @param {object} params - optional params to record conference
|
||||
* @param {string} [params.fileFormat] The file format of the record can be of mp3 or wav format. Defaults to mp3 format.
|
||||
* @param {string} [params.transcriptionType] The type of transcription required. The following values are allowed:
|
||||
* - auto - This is the default value. Transcription is completely automated; turnaround time is about 5 minutes.
|
||||
* - hybrid - Transcription is a combination of automated and human verification processes; turnaround time is about 10-15 minutes.
|
||||
* @param {string} [params.transcriptionUrl] The URL where the transcription is available.
|
||||
* @param {string} [params.transcriptionMethod] The method used to invoke the transcription_url. Defaults to POST.
|
||||
* @param {string} [params.callbackUrl] The URL invoked by the API when the recording ends.
|
||||
* @param {string} [params.callbackMethod] The method which is used to invoke the callback_url URL. Defaults to POST.
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
record(params: {
|
||||
fileFormat: string;
|
||||
transcriptionType: string;
|
||||
transcriptionUrl: string;
|
||||
transcriptionMethod: string;
|
||||
callbackUrl: string;
|
||||
callbackMethod: string;
|
||||
}): Promise<any>;
|
||||
/**
|
||||
* Record conference
|
||||
* @method
|
||||
* @param {object} params - optional params to record conference
|
||||
* @param {string} [params.fileFormat] The file format of the record can be of mp3 or wav format. Defaults to mp3 format.
|
||||
* @param {string} [params.transcriptionType] The type of transcription required. The following values are allowed:
|
||||
* - auto - This is the default value. Transcription is completely automated; turnaround time is about 5 minutes.
|
||||
* - hybrid - Transcription is a combination of automated and human verification processes; turnaround time is about 10-15 minutes.
|
||||
* @param {string} [params.transcriptionUrl] The URL where the transcription is available.
|
||||
* @param {string} [params.transcriptionMethod] The method used to invoke the transcription_url. Defaults to POST.
|
||||
* @param {string} [params.callbackUrl] The URL invoked by the API when the recording ends.
|
||||
* @param {string} [params.callbackMethod] The method which is used to invoke the callback_url URL. Defaults to POST.
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
startRecording(params?: {
|
||||
fileFormat: string;
|
||||
transcriptionType: string;
|
||||
transcriptionUrl: string;
|
||||
transcriptionMethod: string;
|
||||
callbackUrl: string;
|
||||
callbackMethod: string;
|
||||
}): Promise<StartRecordingConferenceResponse>;
|
||||
/**
|
||||
* stop recording conference
|
||||
* @method
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
stopRecording(): Promise<any>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
/**
|
||||
* Represents a Conference Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class ConferenceInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
|
||||
/**
|
||||
* get conference by id
|
||||
* @method
|
||||
* @param {string} id - id of conference
|
||||
* @promise {@link Conference} return {@link Conference} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id: string): Promise<RetrieveConferenceResponse>;
|
||||
/**
|
||||
* get all conferences. returns name of all conferences
|
||||
* @method
|
||||
* @promise {@link [Conference]} returns list of {@link Conference} objects if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
list(): Promise<ListAllConferenceResponse>;
|
||||
/**
|
||||
* hangup conference
|
||||
* @method
|
||||
* @param {string} conferenceName - name of conference
|
||||
* @promise {@link Conference} return {@link Conference} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
hangup(conferenceName: string): Promise<any>;
|
||||
/**
|
||||
* hangup all
|
||||
* @method
|
||||
* @promise {@link PlivoGenericResponse} returns object of PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
hangupAll(): Promise<any>;
|
||||
/**
|
||||
* hangup member from conference
|
||||
* @method
|
||||
* @param {string} id - id of conference
|
||||
* @param {string} memberId - id of member to be hangup
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
hangupMember(id: string, memberId: string): Promise<any>;
|
||||
/**
|
||||
* kick member from conference
|
||||
* @method
|
||||
* @param {string} id - id of conference
|
||||
* @param {string} memberId - id of member
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
kickMember(id: string, memberId: string): Promise<any>;
|
||||
/**
|
||||
* mute member
|
||||
* @method
|
||||
* @param {string} id - id of conference
|
||||
* @param {string} memberId - id of member
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
muteMember(id: string, memberId: string): Promise<any>;
|
||||
/**
|
||||
* unmute member
|
||||
* @method
|
||||
* @param {string} id - id of conference
|
||||
* @param {string} memberId - id of member
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
unmuteMember(id: string, memberId: string): Promise<any>;
|
||||
/**
|
||||
* deaf member
|
||||
* @method
|
||||
* @param {string} id - id of conference
|
||||
* @param {string} memberId - id of member
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
deafMember(id: string, memberId: string): Promise<any>;
|
||||
/**
|
||||
* undeaf member
|
||||
* @method
|
||||
* @param {string} id - id of conference
|
||||
* @param {string} memberId - id of member
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
undeafMember(id: string, memberId: string): Promise<any>;
|
||||
/**
|
||||
* play audio to member
|
||||
* @method
|
||||
* @param {string} id - id of conference
|
||||
* @param {string} memberId - id of member
|
||||
* @param {string} url - urls for audio
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
playAudioToMember(id: string, memberId: string, url: string): Promise<any>;
|
||||
/**
|
||||
* stop playing audio to member
|
||||
* @method
|
||||
* @param {string} id - id of conference
|
||||
* @param {string} memberId - id of member
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
stopPlayingAudioToMember(id: string, memberId: string): Promise<any>;
|
||||
/**
|
||||
* speak text to member
|
||||
* @method
|
||||
* @param {string} id - id of conference
|
||||
* @param {string} memberId - id of member
|
||||
* @param {string} text - text to speak
|
||||
* @param {object} optionalParams - optional params
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
speakTextToMember(id: string, memberId: string, text: string, optionalParams: object): Promise<any>;
|
||||
/**
|
||||
* stop speaking text to member
|
||||
* @method
|
||||
* @param {string} id - id of conference
|
||||
* @param {string} memberId - id of member
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
stopSpeakingTextToMember(id: string, memberId: string): Promise<any>;
|
||||
/**
|
||||
* record conference
|
||||
* @method
|
||||
* @param {string} id - id of conference
|
||||
* @param {object} params - optional params to record conference
|
||||
* @param {string} [params.fileFormat] The file format of the record can be of mp3 or wav format. Defaults to mp3 format.
|
||||
* @param {string} [params.transcriptionType] The type of transcription required. The following values are allowed:
|
||||
* - auto - This is the default value. Transcription is completely automated; turnaround time is about 5 minutes.
|
||||
* - hybrid - Transcription is a combination of automated and human verification processes; turnaround time is about 10-15 minutes.
|
||||
* @param {string} [params.transcriptionUrl] The URL where the transcription is available.
|
||||
* @param {string} [params.transcriptionMethod] The method used to invoke the transcription_url. Defaults to POST.
|
||||
* @param {string} [params.callbackUrl] The URL invoked by the API when the recording ends.
|
||||
* @param {string} [params.callbackMethod] The method which is used to invoke the callback_url URL. Defaults to POST.
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
record(id: string, params: {
|
||||
fileFormat: string;
|
||||
transcriptionType: string;
|
||||
transcriptionUrl: string;
|
||||
transcriptionMethod: string;
|
||||
callbackUrl: string;
|
||||
callbackMethod: string;
|
||||
}): Promise<any>;
|
||||
/**
|
||||
* record conference
|
||||
* @method
|
||||
* @param {string} id - id of conference
|
||||
* @param {object} params - optional params to record conference
|
||||
* @param {string} [params.fileFormat] The file format of the record can be of mp3 or wav format. Defaults to mp3 format.
|
||||
* @param {string} [params.transcriptionType] The type of transcription required. The following values are allowed:
|
||||
* - auto - This is the default value. Transcription is completely automated; turnaround time is about 5 minutes.
|
||||
* - hybrid - Transcription is a combination of automated and human verification processes; turnaround time is about 10-15 minutes.
|
||||
* @param {string} [params.transcriptionUrl] The URL where the transcription is available.
|
||||
* @param {string} [params.transcriptionMethod] The method used to invoke the transcription_url. Defaults to POST.
|
||||
* @param {string} [params.callbackUrl] The URL invoked by the API when the recording ends.
|
||||
* @param {string} [params.callbackMethod] The method which is used to invoke the callback_url URL. Defaults to POST.
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
startRecording(id: string, params: {
|
||||
fileFormat: string;
|
||||
transcriptionType: string;
|
||||
transcriptionUrl: string;
|
||||
transcriptionMethod: string;
|
||||
callbackUrl: string;
|
||||
callbackMethod: string;
|
||||
}): Promise<any>;
|
||||
/**
|
||||
* stop recording
|
||||
* @method
|
||||
* @param {string} id - id of conference
|
||||
* @promise {PlivoGenericResponse} return PlivoGenericResponse if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
stopRecording(id: string): Promise<any>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
import { PlivoResource } from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import { PlivoResourceInterface } from "../base";
|
||||
export {};
|
||||
131
types/resources/endUsers.d.ts
vendored
Normal file
131
types/resources/endUsers.d.ts
vendored
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
export class EndUsersResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
endUserId: string;
|
||||
endUserType: string;
|
||||
name: string;
|
||||
lastName: string;
|
||||
createdAt: string;
|
||||
}
|
||||
|
||||
export class CreateEndUsersResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
endUserId: string;
|
||||
endUserType: string;
|
||||
name: string;
|
||||
lastName: string;
|
||||
createdAt: string;
|
||||
message: string;
|
||||
}
|
||||
|
||||
export class UpdateEndUsersResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
}
|
||||
|
||||
export class ListEndUsersResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
meta: Object;
|
||||
objects: Array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents an EndUser
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class EndUser extends PlivoResource {
|
||||
constructor(client: Function, data?: {});
|
||||
id: string;
|
||||
/**
|
||||
* update end user
|
||||
* @method
|
||||
* @param {object} params - to update end user
|
||||
* @param {string} [params.name] - Name of the endUser if present.
|
||||
* @param {string} [params.last_name] - Last name of the endUser if present.
|
||||
* @param {string} [params.end_user_type] - Type of the end user.
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
|
||||
update(params: object, id: string): Promise<UpdateEndUsersResponse>;
|
||||
/**
|
||||
* delete EndUser
|
||||
* @method
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(): Promise<unknown>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a EndUser Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class EndUserInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
/**
|
||||
* get EndUser by given id
|
||||
* @method
|
||||
* @param {string} id - id of the end user.
|
||||
* @promise {object} return {@link EndUser} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id: string): Promise<EndUsersResponse>;
|
||||
|
||||
|
||||
/**
|
||||
* list endUsers
|
||||
* @method
|
||||
* @param {object} params - params to list endusers
|
||||
* @param {string} [params.name] - Name of the endUser if present.
|
||||
* @param {string} [params.last_name] - Last name of the endUser if present.
|
||||
* @param {string} [params.end_user_type] - Type of the end user.
|
||||
* @param {integer} [params.offset] - No of value items by which results should be offset
|
||||
* @param {integer} [params.limit] - No of value items by which results should be offset
|
||||
*/
|
||||
list(params: object): Promise<ListEndUsersResponse>;
|
||||
|
||||
/**
|
||||
* Create end user
|
||||
* @method
|
||||
* @param {object} params - to update end user
|
||||
* @param {string} [params.name] - Name of the endUser if present.
|
||||
* @param {string} [params.last_name] - Last name of the endUser if present.
|
||||
* @param {string} [params.end_user_type] - Type of the end user.
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
create(params: object): Promise<CreateEndUsersResponse>;
|
||||
|
||||
/**
|
||||
* update end user
|
||||
* @method
|
||||
* @param {object} params - to update end user
|
||||
* @param {string} [params.name] - Name of the endUser if present.
|
||||
* @param {string} [params.last_name] - Last name of the endUser if present.
|
||||
* @param {string} [params.end_user_type] - Type of the end user.
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(id: string, params: object): Promise<UpdateEndUsersResponse>;
|
||||
|
||||
/**
|
||||
* delete an EndUser
|
||||
* @method
|
||||
* @param {string} id - id to delete
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(id: string): any;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
|
||||
import { PlivoResource } from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import { PlivoResourceInterface } from "../base";
|
||||
export {};
|
||||
125
types/resources/endpoints.d.ts
vendored
Normal file
125
types/resources/endpoints.d.ts
vendored
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
export class UpdateEndpointResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
alias: string;
|
||||
}
|
||||
export class RetrieveEndpointResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
alias: string;
|
||||
application: string;
|
||||
endpointId: string;
|
||||
password: string;
|
||||
resourceUri: string;
|
||||
sipRegistered: string;
|
||||
sipUri: string;
|
||||
subAccount: string;
|
||||
username: string;
|
||||
}
|
||||
export class ListAllEndpointResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
alias: string;
|
||||
application: string;
|
||||
endpointId: string;
|
||||
password: string;
|
||||
resourceUri: string;
|
||||
sipRegistered: string;
|
||||
sipUri: string;
|
||||
subAccount: string;
|
||||
username: string;
|
||||
}
|
||||
export class CreateEndpointResponse {
|
||||
constructor(params: object);
|
||||
alias: string;
|
||||
apiId: string;
|
||||
endpointId: string;
|
||||
message: string;
|
||||
username: string;
|
||||
}
|
||||
/**
|
||||
* Represents a Endpoint
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class Endpoint extends PlivoResource {
|
||||
constructor(client: Function, data?: {});
|
||||
id: string;
|
||||
/**
|
||||
* update Endpoint
|
||||
* @method
|
||||
* @param {object} params
|
||||
* @param {string} [params.username] - username to update
|
||||
* @param {string} [params.password] - password to update
|
||||
* @param {string} [params.alias] - alias to update
|
||||
* @param {string} [params.appId] - app id to update
|
||||
* @promise {object} return {@link Endpoint} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(params: object, id: string): Promise<UpdateEndpointResponse>;
|
||||
/**
|
||||
* delete Endpoint
|
||||
* @method
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(): Promise<unknown>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
/**
|
||||
* Represents a Endpoint Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class EndpointInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
/**
|
||||
* Get Endpoint by given id
|
||||
* @method
|
||||
* @param {string} id - id of endpoint
|
||||
* @promise {object} return {@link Endpoint} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id: string): Promise<RetrieveEndpointResponse>;
|
||||
list(): Promise<ListAllEndpointResponse>;
|
||||
/**
|
||||
* Create Endpoint
|
||||
* @method
|
||||
* @param {string} username - username to create
|
||||
* @param {string} passwowrd - password to create
|
||||
* @param {string} alias - alias to create
|
||||
* @param {string} appId - app id to create
|
||||
* @promise {object} return {@link PlivoGenericResponse} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
create(username: string, password: string, alias: string, appId: string): Promise<CreateEndpointResponse>;
|
||||
/**
|
||||
* update Endpoint
|
||||
* @method
|
||||
* @param {string} id - id to update
|
||||
* @param {object} params
|
||||
* @param {string} [params.username] - username to update
|
||||
* @param {string} [params.password] - password to update
|
||||
* @param {string} [params.alias] - alias to update
|
||||
* @param {string} [params.appId] - app id to update
|
||||
* @promise {object} return {@link Endpoint} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(id: string, params: object): Promise<UpdateEndpointResponse>;
|
||||
/**
|
||||
* delete Endpoint
|
||||
* @method
|
||||
* @param {string} id - id to delete
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(id: string): any;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
import { PlivoResource } from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import { PlivoResourceInterface } from "../base";
|
||||
export {};
|
||||
22
types/resources/lookup.d.ts
vendored
Normal file
22
types/resources/lookup.d.ts
vendored
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
export class LookupResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
phoneNumber: string;
|
||||
country: object;
|
||||
format: object;
|
||||
carrier: object;
|
||||
resourceUri: string;
|
||||
}
|
||||
export class Number extends PlivoResource {
|
||||
constructor(client: Function, data?: {});
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
export class LookupInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
get(number: string, type?: string): Promise<LookupResponse>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
import { PlivoResource } from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import { PlivoResourceInterface } from "../base";
|
||||
export {};
|
||||
71
types/resources/media.d.ts
vendored
Normal file
71
types/resources/media.d.ts
vendored
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
export class UploadMediaResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
objects: object;
|
||||
}
|
||||
export class RetrieveMediaResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
contentType: string;
|
||||
fileName: string;
|
||||
mediaId: string;
|
||||
mediaUrl: string;
|
||||
size: string;
|
||||
uploadTime: string;
|
||||
}
|
||||
export class ListMediaResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
meta: string;
|
||||
objects: string;
|
||||
}
|
||||
/**
|
||||
* Represents a Message
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class Media extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
id: string;
|
||||
}
|
||||
/**
|
||||
* Represents a Media Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class MediaInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data ? : {});
|
||||
/**
|
||||
* Upload Media
|
||||
* @method
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
upload(files: Array): Promise<UploadMediaResponse>;
|
||||
/**
|
||||
* Get Media by given id
|
||||
* @method
|
||||
* @param {string} media_id - id of media
|
||||
* @promise {object} return {@link Media} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(media_id: string): Promise<RetrieveMediaResponse>;
|
||||
/**
|
||||
* Get All Media Detail
|
||||
* @method
|
||||
* @param {object} params - params to get all media details.
|
||||
* @promise {object[]} returns list of Media Object
|
||||
* @fail {Error} returns Error
|
||||
*/
|
||||
list(params: object): Promise<any>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
import {
|
||||
PlivoResource
|
||||
} from "../base";
|
||||
import {
|
||||
PlivoResourceInterface
|
||||
} from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
export {};
|
||||
122
types/resources/messages.d.ts
vendored
Normal file
122
types/resources/messages.d.ts
vendored
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
export class MessageResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
messageUuid: string;
|
||||
}
|
||||
export class MessageGetResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
errorCode: string;
|
||||
fromNumber: string;
|
||||
messageDirection: string;
|
||||
messageState: string;
|
||||
messageTime: string;
|
||||
messageType: string;
|
||||
messageUuid: string;
|
||||
resourceUri: string;
|
||||
toNumber: string;
|
||||
totalAmount: string;
|
||||
totalRate: string;
|
||||
units: string;
|
||||
}
|
||||
export class MessageListResponse {
|
||||
constructor(params: object);
|
||||
errorCode: string;
|
||||
fromNumber: string;
|
||||
messageDirection: string;
|
||||
messageState: string;
|
||||
messageTime: string;
|
||||
messageType: string;
|
||||
messageUuid: string;
|
||||
resourceUri: string;
|
||||
toNumber: string;
|
||||
totalAmount: string;
|
||||
totalRate: string;
|
||||
units: string;
|
||||
}
|
||||
export class MMSMediaResponse {
|
||||
constructor(params: object);
|
||||
apiid: string;
|
||||
objects: MMSMedia[];
|
||||
}
|
||||
export class MMSMedia {
|
||||
constructor(params: object);
|
||||
contentType: string;
|
||||
fileName: string;
|
||||
mediaId: string;
|
||||
mediaUrl: string;
|
||||
messageUuid: string;
|
||||
size: string;
|
||||
uploadTime: string;
|
||||
}
|
||||
/**
|
||||
* Represents a Message
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class Message extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
id: string;
|
||||
listMedia(): Promise < any > ;
|
||||
}
|
||||
/**
|
||||
* Represents a Message Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class MessageInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
/**
|
||||
* Send Message
|
||||
* @method
|
||||
* @param {string} src - source number
|
||||
* @param {string} dst - destination number
|
||||
* @param {string} text - text to send
|
||||
* @param {object} optionalParams - Optional Params to send message
|
||||
* @param {string} [optionalParams.type] - The type of message. Should be `sms` or `mms`. Defaults to `sms`.
|
||||
* @param {string} [optionalParams.url] The URL to which with the status of the message is sent.
|
||||
* @param {string} [optionalParams.method] The method used to call the url. Defaults to POST.
|
||||
* @param {list} [optionalParams.media_urls] For sending mms, specify the media urls in list of string
|
||||
* @param {boolean} [optionalParams.log] If set to false, the content of this message will not be logged on the Plivo infrastructure and the dst value will be masked (e.g., 141XXXXX528). Default is set to true.
|
||||
* @promise {object} return {@link PlivoGenericMessage} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
send(src: string, dst: string, text: string, optionalParams?: {
|
||||
type: string;
|
||||
url: string;
|
||||
method: string;
|
||||
media_urls: Array;
|
||||
log: boolean;
|
||||
}): Promise < MessageResponse > ;
|
||||
/**
|
||||
* Create Message
|
||||
* @method
|
||||
* @param {string} src - source number
|
||||
* @param {string} dst - destination number
|
||||
* @param {string} text - text to send
|
||||
* @param {object} optionalParams - Optional Params to send message
|
||||
* @param {string} [optionalParams.type] - The type of message. Should be `sms` or `mms`. Defaults to `sms`.
|
||||
* @param {string} [optionalParams.url] The URL to which with the status of the message is sent.
|
||||
* @param {string} [optionalParams.method] The method used to call the url. Defaults to POST.
|
||||
* @param {boolean} [optionalParams.log] If set to false, the content of this message will not be logged on the Plivo infrastructure and the dst value will be masked (e.g., 141XXXXX528). Default is set to true.
|
||||
* @param {Array} [optionalParams.media_urls] For sending mms, specify the media urls in list of string
|
||||
* @promise {object} return {@link MessageResponse} object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
create(src: any, dst: any, text: string, optionalParams?: object, powerpackUUID?: string ): Promise < MessageResponse >;
|
||||
|
||||
get(id: string): Promise<MessageGetResponse>;
|
||||
|
||||
list(params: object): Promise < MessageListResponse> ;
|
||||
|
||||
listMedia(messageUUID: string): Promise <MMSMediaResponse> ;
|
||||
}
|
||||
import {
|
||||
PlivoResource
|
||||
} from "../base";
|
||||
import {
|
||||
PlivoResourceInterface
|
||||
} from "../base";
|
||||
161
types/resources/numbers.d.ts
vendored
Normal file
161
types/resources/numbers.d.ts
vendored
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
export class BuyNumberResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
numbers: object;
|
||||
status: string;
|
||||
}
|
||||
export class UpdateNumberResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
message: string;
|
||||
}
|
||||
|
||||
export class SearchNumberResponse {
|
||||
constructor(params: object);
|
||||
number: string;
|
||||
prefix: string;
|
||||
city: string;
|
||||
country: string;
|
||||
region: string;
|
||||
rate_center: string;
|
||||
lata: number;
|
||||
type: string;
|
||||
sub_type: string;
|
||||
setup_rate: string;
|
||||
monthly_rental_rate: string;
|
||||
sms_enabled: boolean;
|
||||
sms_rate: string;
|
||||
voice_enabled: boolean;
|
||||
voice_rate: string;
|
||||
restriction: string;
|
||||
restriction_text: string;
|
||||
resource_uri: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a PhoneNumber
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class PhoneNumber extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
id: string;
|
||||
/**
|
||||
* Buy Phone Number
|
||||
* @method
|
||||
* @param {string} appId - app id
|
||||
* @promise {@link PlivoGenericResponse} return PlivoGenericResponse Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
buy(appId: string): Promise < any > ;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
/**
|
||||
* Represents a PhoneNumbers Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
* @param {string} [data.test] - test data
|
||||
*/
|
||||
export class PhoneNumberInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data ? : {});
|
||||
/**
|
||||
* Buy Phone Number
|
||||
* @method
|
||||
* @param {string} appId - app id
|
||||
* @promise {@link PlivoGenericResponse} return PlivoGenericResponse Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
buy(number: string, appId: string): Promise < any > ;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
/**
|
||||
* Represents a Number
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class NumberResource extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
id: string;
|
||||
/**
|
||||
* Unrent Number
|
||||
* @method
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
unrent(number: string): Promise < any > ;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
/**
|
||||
* Represents a Numbers
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class NumberInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function);
|
||||
/**
|
||||
* Buy Phone Number
|
||||
* @method
|
||||
* @param {string} number - number to buy
|
||||
* @param {string} appId - app id
|
||||
* @promise {@link PlivoGenericResponse} return PlivoGenericResponse Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
buy(number: string, appId: string): Promise < BuyNumberResponse > ;
|
||||
/**
|
||||
* Add own number from carrier
|
||||
* @method
|
||||
* @param {string} numbers - A comma separated list of numbers that need to be added for the carrier.
|
||||
* @param {string} carrier - The carrier_id of the IncomingCarrier that the number is associated with.
|
||||
* @param {string} region - region that is associated with the Number
|
||||
* @param {string} optionaParams - optional params
|
||||
* @promise {@link PlivoGenericResponse} return PlivoGenericResponse Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
addOwnNumber(numbers: string, carrier: string, region: string, optionalParams: object): Promise < UpdateNumberResponse > ;
|
||||
/**
|
||||
* Add own number from carrier
|
||||
* @method
|
||||
* @param {string} countryISO - The ISO code A2 of the country
|
||||
* @param {string} optionaParams - optional params
|
||||
* @promise {@link PhoneNumberInterface} return PhoneNumbers Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
search(countryISO: string, optionalParams: object): Promise < SearchNumberResponse > ;
|
||||
/**
|
||||
* Update Number
|
||||
* @method
|
||||
* @param {string} number - number to update
|
||||
* @param {object} params
|
||||
* @param {string} [params.appId] - app id
|
||||
* @param {string} [params.subAccount] - auth_id of subaccount
|
||||
* @param {string} [params.alias] - textual name of number
|
||||
* @promise {@link NumberResource} return NumberResource Object if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(number: string, params: {
|
||||
appId: string;
|
||||
subAccount: string;
|
||||
alias: string;
|
||||
}): Promise < UpdateNumberResponse > ;
|
||||
/**
|
||||
* Unrent Number
|
||||
* @method
|
||||
* @param {string} number - number to unrent
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
unrent(number: string): Promise < any > ;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
import {
|
||||
PlivoResource
|
||||
} from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import {
|
||||
PlivoResourceInterface
|
||||
} from "../base";
|
||||
export {};
|
||||
54
types/resources/phlo.d.ts
vendored
Normal file
54
types/resources/phlo.d.ts
vendored
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
export class RunPHLOResponse {
|
||||
constructor(params: object);
|
||||
apiid: string;
|
||||
phloid: string;
|
||||
message: string;
|
||||
}
|
||||
export class RetrievePHLOResponse {
|
||||
constructor(params: object);
|
||||
apiid: string;
|
||||
phloid: string;
|
||||
name: string;
|
||||
createdOn: string;
|
||||
}
|
||||
/**
|
||||
* Represents a Phlo
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of phlo
|
||||
*/
|
||||
export class Phlo extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
client: Function;
|
||||
multiPartyCall: (nodeid: string) => PhloMultiPartyCall;
|
||||
/**
|
||||
* run phlo
|
||||
* @method
|
||||
* @promise {Boolean} return true if phlo is complete
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
run(params: object): Promise < RunPHLOResponse > ;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
/**
|
||||
* Represents a Phlo Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class PhloInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
get(id: string): Promise<RetrievePHLOResponse>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
import {
|
||||
PlivoResource
|
||||
} from "../base";
|
||||
import {
|
||||
PhloMultiPartyCall
|
||||
} from "./phloMultipartyCall";
|
||||
declare const clientKey: unique symbol;
|
||||
import {
|
||||
PlivoResourceInterface
|
||||
} from "../base";
|
||||
export {};
|
||||
34
types/resources/phloMultiPartyCallMember.d.ts
vendored
Normal file
34
types/resources/phloMultiPartyCallMember.d.ts
vendored
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/**
|
||||
* Represents a Multiparty Call Member
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of phlo
|
||||
*/
|
||||
export class UpdateMemberResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
error: string;
|
||||
}
|
||||
export class PhloMultiPartyCallMember extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
action: string;
|
||||
client: Function;
|
||||
resumeCall(): Promise < any > ;
|
||||
voicemailDrop(): Promise < any > ;
|
||||
hangup(): Promise < any > ;
|
||||
hold(): Promise < any > ;
|
||||
unhold(): Promise<any>;
|
||||
update(action: object): Promise<UpdateMemberResponse>;
|
||||
}
|
||||
export class PhloMultiPartyCallMemberInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data ? : {});
|
||||
action: string;
|
||||
client: Function;
|
||||
get(phloId: string, nodeId: string, memberAddress: string): any;
|
||||
}
|
||||
import {
|
||||
PlivoResource
|
||||
} from "../base";
|
||||
import {
|
||||
PlivoResourceInterface
|
||||
} from "../base";
|
||||
42
types/resources/phloMultipartyCall.d.ts
vendored
Normal file
42
types/resources/phloMultipartyCall.d.ts
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
export class UpdateMultipartyCallResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
error: string;
|
||||
}
|
||||
export class RetrieveMultipartyCallResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
nodeId: string;
|
||||
phloId: string;
|
||||
name: string;
|
||||
nodeType: string;
|
||||
createdOn: string;
|
||||
}
|
||||
export class PhloMultiPartyCall extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
action: string;
|
||||
client: Function;
|
||||
member: (memberAddress: string) => PhloMultiPartyCallMember;
|
||||
call(triggerSource: string, to: string, role: string): Promise < any > ;
|
||||
warmTransfer(triggerSource: string, to: string, role: string): Promise < UpdateMultipartyCallResponse > ;
|
||||
coldTransfer(triggerSource: string, to: string, role: string): Promise < UpdateMultipartyCallResponse > ;
|
||||
abortTransfer(memberAddress: string): Promise<any>;
|
||||
update(action: string, triggerSource: string, to: string, role: string): Promise<UpdateMultipartyCallResponse>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
export class PhloMultiPartyCallInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
get(phloId: string, id: string): Promise<RetrieveMultipartyCallResponse>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
import {
|
||||
PlivoResource
|
||||
} from "../base";
|
||||
import {
|
||||
PhloMultiPartyCallMember
|
||||
} from "./phloMultiPartyCallMember";
|
||||
declare const clientKey: unique symbol;
|
||||
import {
|
||||
PlivoResourceInterface
|
||||
} from "../base";
|
||||
export {};
|
||||
225
types/resources/powerpacks.d.ts
vendored
Normal file
225
types/resources/powerpacks.d.ts
vendored
Normal file
|
|
@ -0,0 +1,225 @@
|
|||
export class ListAllNumbersResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
meta: object;
|
||||
objects: object;
|
||||
}
|
||||
export class CreatePowerpackResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
applicationId: string;
|
||||
applicationType: string;
|
||||
createdOn: string;
|
||||
localConnect: string;
|
||||
name: string;
|
||||
numberPool: string;
|
||||
numberPriority: string;
|
||||
stickySender: string;
|
||||
uuid: string;
|
||||
}
|
||||
export class UpdatePowerpackResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
applicationId: string;
|
||||
applicationType: string;
|
||||
createdOn: string;
|
||||
localConnect: string;
|
||||
name: string;
|
||||
numberPool: string;
|
||||
stickySender: string;
|
||||
uuid: string;
|
||||
}
|
||||
export class ListShortCodeResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
meta: object;
|
||||
objects: object;
|
||||
}
|
||||
export class ListTollFreeResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
meta: object;
|
||||
objects: object;
|
||||
}
|
||||
export class AddNumberResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
accountPhoneNumberResource: string;
|
||||
addedOn: string;
|
||||
countryIso2: string;
|
||||
number: string;
|
||||
numberPoolUuid: string;
|
||||
type: string;
|
||||
service: string;
|
||||
}
|
||||
export class RemoveNumberResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
response: string;
|
||||
}
|
||||
export class RemoveTollFreeNumberResponse {
|
||||
constructor(params: object);
|
||||
apiid: string;
|
||||
response: string;
|
||||
}
|
||||
export class RemoveShortCodeResponse {
|
||||
constructor(params: object);
|
||||
apiid: string;
|
||||
response: string;
|
||||
}
|
||||
export class AddTollFreeNumberresponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
accountPhoneNumberResource: string;
|
||||
addedOn: string;
|
||||
countryIso2: string;
|
||||
number: string;
|
||||
numberPoolUuid: string;
|
||||
type: string;
|
||||
service: string;
|
||||
}
|
||||
export class RetrieveNumberResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
accountPhoneNumberResource: string;
|
||||
addedOn: string;
|
||||
countryIso2: string;
|
||||
number: string;
|
||||
numberPoolUuid: string;
|
||||
type: string;
|
||||
}
|
||||
export class RetrieveTollFreeResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
accountPhoneNumberResource: string;
|
||||
addedOn: string;
|
||||
countryIso2: string;
|
||||
number: string;
|
||||
numberPoolUuid: string;
|
||||
type: string;
|
||||
}
|
||||
export class RetrieveShortCodeResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
addedOn: string;
|
||||
countryIso2: string;
|
||||
shortCode: string;
|
||||
numberPoolUuid: string;
|
||||
}
|
||||
/**
|
||||
* Represents a Powerpack
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class Powerpack extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
uuid: string;
|
||||
number_pool_id: string;
|
||||
number_pool: NumberPool;
|
||||
list_numbers(params: object): Promise < ListAllNumbersResponse > ;
|
||||
search_query(params: object): string;
|
||||
count_numbers(params: object): Promise < any > ;
|
||||
find_number(number: string): Promise < RetrieveNumberResponse > ;
|
||||
add_number(number: string, service ? : string): Promise < AddNumberResponse > ;
|
||||
add_tollfree(tollfree: string, service ? : string): Promise < AddTollFreeNumberresponse > ;
|
||||
remove_number(number: string, unrent ? : boolean): Promise < RemoveNumberResponse > ;
|
||||
remove_tollfree(tollfree: string, unrent ? : boolean): Promise < RemoveTollFreeNumberResponse > ;
|
||||
remove_shortcode(shortcode: string): Promise < RemoveShortCodeResponse > ;
|
||||
list_shortcodes(params: object): Promise < ListShortCodeResponse > ;
|
||||
list_tollfree(params: object): Promise < ListTollFreeResponse > ;
|
||||
find_shortcode(shortcode: object, service ? : string): Promise < RetrieveShortCodeResponse > ;
|
||||
find_tollfree(tollfree: string, service ? : string): Promise < RetrieveTollFreeResponse > ;
|
||||
buy_add_number(params: object): Promise <AddNumberResponse>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
export class NumberPool extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
numbers: Numbers;
|
||||
shortcodes: Shortcode;
|
||||
tollfree: Tollfree;
|
||||
}
|
||||
export class Numbers extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
buy_add_number(params: object): any;
|
||||
list(params: object): Promise < any > ;
|
||||
count(params: object): Promise < any > ;
|
||||
search_query(params: object): string;
|
||||
find(number: object): Promise < any > ;
|
||||
add(number: string, service ? : string): Promise < any > ;
|
||||
remove(number: string, unrent ? : boolean): Promise < any > ;
|
||||
}
|
||||
export class Shortcode extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
number_pool_id: string;
|
||||
list(params: object): Promise < any > ;
|
||||
find(shortcode: object): Promise < any > ;
|
||||
remove(shortcode: object): Promise < any > ;
|
||||
}
|
||||
export class Tollfree extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
number_pool_id: string;
|
||||
add(tollfree: string): Promise < any > ;
|
||||
remove(tollfree: string, unrent ? : boolean): Promise < any > ;
|
||||
list(params: object): Promise < any > ;
|
||||
find(tollfree: object): Promise < any > ;
|
||||
}
|
||||
/**
|
||||
* Represents a Powerpack interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class PowerpackInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data ? : {});
|
||||
/**
|
||||
* get Powerpack by given id
|
||||
* @method
|
||||
* @param {string} uuid - id of Powerpack
|
||||
* @promise {object} return {@link Powerpack} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(uuid: string): any;
|
||||
/**
|
||||
* create Powerpack
|
||||
* @method
|
||||
* @param {string} name - name of Powerpack
|
||||
* @param {object} params - params to create Powerpack
|
||||
* @param {string} [params.sticky_sender] -
|
||||
* @param {string} [params.local_connect]
|
||||
* @param {string} [params.application_type]
|
||||
* @param {string} [params.application_id]
|
||||
* @promise {object} return {@link PlivoGenericResponse} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
create(name: string, params?: {}): Promise<CreatePowerpackResponse>;
|
||||
/**
|
||||
* update Powerpack
|
||||
* @method
|
||||
* @param {string} uuid - id of Powerpack
|
||||
* @param {object} params - to update Powerpack
|
||||
* @param {string} [params.name]
|
||||
* @param {string} [params.sticky_sender]
|
||||
* @param {string} [params.local_connect]
|
||||
* @param {string} [params.application_type]
|
||||
* @param {string} [params.application_id]
|
||||
* @promise {object} return {@link Powerpack} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
update(uuid: string, params: {
|
||||
name: string;
|
||||
sticky_sender: string;
|
||||
local_connect: string;
|
||||
application_type: string;
|
||||
application_id: string;
|
||||
}): Promise < UpdatePowerpackResponse > ;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
import {
|
||||
PlivoResource
|
||||
} from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import {
|
||||
PlivoResourceInterface
|
||||
} from "../base";
|
||||
export {};
|
||||
42
types/resources/pricings.d.ts
vendored
Normal file
42
types/resources/pricings.d.ts
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
/**
|
||||
* Represents a Pricing
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class PricingResponse {
|
||||
constructor(params: object);
|
||||
apiId: string;
|
||||
country: string;
|
||||
countryCode: string;
|
||||
countryIso: string;
|
||||
message: object;
|
||||
mms: object;
|
||||
phoneNumbers: object;
|
||||
voice: object;
|
||||
}
|
||||
export class Pricing extends PlivoResource {
|
||||
constructor(client: Function, data?: {});
|
||||
/**
|
||||
* Get pricings by country
|
||||
* @method
|
||||
* @promise {object} return {@link PlivoGenericResponse} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(): Promise<PricingResponse>;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
/**
|
||||
* Represents a Pricing Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class PricingInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data?: {});
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
import { PlivoResource } from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import { PlivoResourceInterface } from "../base";
|
||||
export {};
|
||||
86
types/resources/recordings.d.ts
vendored
Normal file
86
types/resources/recordings.d.ts
vendored
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
export class RetrieveRecordingResponse {
|
||||
constructor(params: object);
|
||||
addTime: string;
|
||||
apiId: string;
|
||||
callUuid: string;
|
||||
conferenceName: string;
|
||||
recordingDurationMs: string;
|
||||
recordingEndMs: string;
|
||||
recordingFormat: string;
|
||||
recordingId: string;
|
||||
recordingStartMs: string;
|
||||
recordingType: string;
|
||||
recordingUrl: string;
|
||||
resourceUri: string;
|
||||
}
|
||||
export class ListRecordingResponse {
|
||||
constructor(params: object);
|
||||
addTime: string;
|
||||
apiId: string;
|
||||
callUuid: string;
|
||||
conferenceName: string;
|
||||
recordingDurationMs: string;
|
||||
recordingEndMs: string;
|
||||
recordingFormat: string;
|
||||
recordingId: string;
|
||||
recordingStartMs: string;
|
||||
recordingType: string;
|
||||
recordingUrl: string;
|
||||
resourceUri: string;
|
||||
}
|
||||
/**
|
||||
* Represents a Recording
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class Recording extends PlivoResource {
|
||||
constructor(client: Function, data ? : {});
|
||||
id: string;
|
||||
[clientKey]: symbol;
|
||||
}
|
||||
/**
|
||||
* Represents a Recording Interface
|
||||
* @constructor
|
||||
* @param {function} client - make api call
|
||||
* @param {object} [data] - data of call
|
||||
*/
|
||||
export class RecordingInterface extends PlivoResourceInterface {
|
||||
constructor(client: Function, data ? : {});
|
||||
/**
|
||||
* Delete recording by id
|
||||
* @method
|
||||
* @param {string} id - id to delete recording
|
||||
* @promise {boolean} return true if success
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
delete(id: string): Promise < any > ;
|
||||
[clientKey]: symbol;
|
||||
/**
|
||||
* Get recording by id
|
||||
* @method
|
||||
* @param {string} id - id to get recording information
|
||||
* @promise {object} return {@link Pricing} object
|
||||
* @fail {Error} return Error
|
||||
*/
|
||||
get(id: string): Promise<RetrieveRecordingResponse>;
|
||||
/**
|
||||
* list recordings
|
||||
* @method
|
||||
* @param {object} params - params to list recordings
|
||||
* @param {string} [params.subaccount] - ID of the subaccount if present
|
||||
* @param {string} [params.callUuid] - Call UUID of the call to filter recordings associated with it
|
||||
* @param {string} [params.addTime] - Filter based on the timings they were added
|
||||
* @param {string} [params.limit] - Display no of results per page
|
||||
* @param {string} [params.offset] - No of value items by which results should be offset
|
||||
*/
|
||||
list(params?: {}): Promise<ListRecordingResponse>;
|
||||
}
|
||||
import {
|
||||
PlivoResource
|
||||
} from "../base";
|
||||
declare const clientKey: unique symbol;
|
||||
import {
|
||||
PlivoResourceInterface
|
||||
} from "../base";
|
||||
export {};
|
||||
39
types/rest/client-test.d.ts
vendored
Normal file
39
types/rest/client-test.d.ts
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
export class Client {
|
||||
constructor(authid: string, authToken: string, proxy: string);
|
||||
calls: CallInterface;
|
||||
accounts: AccountInterface;
|
||||
subAccounts: SubaccountInterface;
|
||||
applications: ApplicationInterface;
|
||||
conferences: ConferenceInterface;
|
||||
endpoints: EndpointInterface;
|
||||
messages: MessageInterface;
|
||||
lookup: LookupInterface;
|
||||
powerpacks: PowerpackInterface;
|
||||
numbers: NumberInterface;
|
||||
pricings: PricingInterface;
|
||||
recordings: RecordingInterface;
|
||||
media: MediaInterface;
|
||||
}
|
||||
/**
|
||||
* Plivo API client which can be used to access the Plivo APIs.
|
||||
* To set a proxy or timeout, pass in options.proxy (url) or options.timeout (number in ms)
|
||||
* You can also pass in additional parameters accepted by the node requests module.
|
||||
*/
|
||||
export class PhloClient {
|
||||
constructor(authid: string, authToken: string, options: string);
|
||||
phlo: (phloid: string) => Phlo;
|
||||
}
|
||||
import { CallInterface } from "../resources/call.js";
|
||||
import { AccountInterface } from "../resources/accounts.js";
|
||||
import { SubaccountInterface } from "../resources/accounts.js";
|
||||
import { ApplicationInterface } from "../resources/applications.js";
|
||||
import { ConferenceInterface } from "../resources/conferences.js";
|
||||
import { EndpointInterface } from "../resources/endpoints.js";
|
||||
import { MessageInterface } from "../resources/messages.js";
|
||||
import { LookupInterface } from "../resources/lookup.js";
|
||||
import { PowerpackInterface } from "../resources/powerpacks.js";
|
||||
import { NumberInterface } from "../resources/numbers.js";
|
||||
import { PricingInterface } from "../resources/pricings.js";
|
||||
import { RecordingInterface } from "../resources/recordings.js";
|
||||
import { MediaInterface } from "../resources/media.js";
|
||||
import { Phlo } from "../resources/phlo.js";
|
||||
56
types/rest/client.d.ts
vendored
Normal file
56
types/rest/client.d.ts
vendored
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
export function Response(): any;
|
||||
export function validateV3Signature(method: string, uri: string, nonce: string, auth_token: string, v3_signature: string, params?: {}): Boolean;
|
||||
export function validateSignature(uri: string, nonce: string, signature: string, auth_token: string): Boolean;
|
||||
/**
|
||||
* Plivo API client which can be used to access the Plivo APIs.
|
||||
* To set a proxy or timeout, pass in options.proxy (url) or options.timeout (number in ms)
|
||||
* You can also pass in additional parameters accepted by the node requests module.
|
||||
*/
|
||||
export class Client {
|
||||
constructor(authId?: string, authToken?: string, options?: string);
|
||||
calls: CallInterface;
|
||||
accounts: AccountInterface;
|
||||
subaccounts: SubaccountInterface;
|
||||
subAccounts: SubaccountInterface;
|
||||
applications: ApplicationInterface;
|
||||
conferences: ConferenceInterface;
|
||||
endpoints: EndpointInterface;
|
||||
messages: MessageInterface;
|
||||
lookup: LookupInterface;
|
||||
powerpacks: PowerpackInterface;
|
||||
numbers: NumberInterface;
|
||||
pricings: PricingInterface;
|
||||
recordings: RecordingInterface;
|
||||
callFeedback: CallFeedbackInterface;
|
||||
media: MediaInterface;
|
||||
endUsers: EndUserInterface;
|
||||
complianceDocumentTypes: ComplianceDocumentTypeInterface;
|
||||
complianceDocuments: ComplianceDocumentInterface;
|
||||
complianceRequirements: ComplianceRequirementInterface;
|
||||
complianceApplications: ComplianceApplicationInterface;
|
||||
toJSON(...args: any[]): any;
|
||||
}
|
||||
/**
|
||||
* Plivo API client which can be used to access the Plivo APIs.
|
||||
* To set a proxy or timeout, pass in options.proxy (url) or options.timeout (number in ms)
|
||||
* You can also pass in additional parameters accepted by the node requests module.
|
||||
*/
|
||||
export class PhloClient {
|
||||
constructor(authId: any, authToken: any, options: any);
|
||||
phlo: (phloId: any) => Phlo;
|
||||
}
|
||||
import { CallInterface } from "../resources/call.js";
|
||||
import { AccountInterface } from "../resources/accounts.js";
|
||||
import { SubaccountInterface } from "../resources/accounts.js";
|
||||
import { ApplicationInterface } from "../resources/applications.js";
|
||||
import { ConferenceInterface } from "../resources/conferences.js";
|
||||
import { EndpointInterface } from "../resources/endpoints.js";
|
||||
import { MessageInterface } from "../resources/messages.js";
|
||||
import { LookupInterface } from "../resources/lookup.js";
|
||||
import { PowerpackInterface } from "../resources/powerpacks.js";
|
||||
import { NumberInterface } from "../resources/numbers.js";
|
||||
import { PricingInterface } from "../resources/pricings.js";
|
||||
import { RecordingInterface } from "../resources/recordings.js";
|
||||
import { CallFeedbackInterface } from "../resources/callFeedback.js";
|
||||
import { MediaInterface } from "../resources/media.js";
|
||||
import { Phlo } from "../resources/phlo.js";
|
||||
1
types/rest/request-test.d.ts
vendored
Normal file
1
types/rest/request-test.d.ts
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
export function Request(config: any): (method: string, action: string, params: object) => Promise<any>;
|
||||
1
types/rest/request.d.ts
vendored
Normal file
1
types/rest/request.d.ts
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
export function Request(config: any): (method: string, action: string, params: object) => Promise<any>;
|
||||
8
types/rest/utils.d.ts
vendored
Normal file
8
types/rest/utils.d.ts
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
export function camelCaseRequestWrapper(requestFunc: any): (method: string, action: string, params: object) => any;
|
||||
export function validateSpeakAttributes(content: any, voice: any): {
|
||||
success: boolean;
|
||||
msg?: undefined;
|
||||
} | {
|
||||
success: boolean;
|
||||
msg: string;
|
||||
};
|
||||
2
types/utils/common.d.ts
vendored
Normal file
2
types/utils/common.d.ts
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
export function extend(instance: any, data: any): void;
|
||||
export function validate(data?: any[]): false | Promise<any>;
|
||||
21
types/utils/exceptions.d.ts
vendored
Normal file
21
types/utils/exceptions.d.ts
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
export class PlivoRestError extends Error {
|
||||
constructor(message?: string);
|
||||
}
|
||||
export class ResourceNotFoundError extends PlivoRestError {
|
||||
constructor(message?: string);
|
||||
}
|
||||
export class ServerError extends PlivoRestError {
|
||||
constructor(message?: string);
|
||||
}
|
||||
export class InvalidRequestError extends PlivoRestError {
|
||||
constructor(message?: string);
|
||||
}
|
||||
export class PlivoXMLError extends PlivoRestError {
|
||||
constructor(message?: string);
|
||||
}
|
||||
export class PlivoXMLValidationError extends PlivoRestError {
|
||||
constructor(message?: string);
|
||||
}
|
||||
export class AuthenticationError extends PlivoRestError {
|
||||
constructor(message?: string);
|
||||
}
|
||||
7
types/utils/jsonStrinfigier.d.ts
vendored
Normal file
7
types/utils/jsonStrinfigier.d.ts
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
export default Flatted;
|
||||
export function parse(text: any, reviver: any): any;
|
||||
export function stringify(value: any, replacer: any, space: any): string;
|
||||
declare namespace Flatted {
|
||||
function parse(text: any, reviver: any): any;
|
||||
function stringify(value: any, replacer: any, space: any): string;
|
||||
}
|
||||
21
types/utils/jwt.d.ts
vendored
Normal file
21
types/utils/jwt.d.ts
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
export function AccessToken(authid: string, authToken: string, username: string, validityOptions?: {}, uid?: any): void;
|
||||
export class AccessToken {
|
||||
constructor(authId: string, authToken: string, username: string, validityOptions?: {}, uid?: any);
|
||||
authId: string;
|
||||
key: string;
|
||||
username: string;
|
||||
validFrom: string;
|
||||
lifetime: string;
|
||||
uid: string;
|
||||
}
|
||||
export function addVoiceGrants(incoming?: boolean, outgoing?: boolean): void;
|
||||
export class addVoiceGrants {
|
||||
constructor(incoming?: boolean, outgoing?: boolean);
|
||||
grants: {
|
||||
voice: {
|
||||
incoming_allow: boolean;
|
||||
outgoing_allow: boolean;
|
||||
};
|
||||
};
|
||||
}
|
||||
export function toJwt(): any;
|
||||
179
types/utils/plivoxml.d.ts
vendored
Normal file
179
types/utils/plivoxml.d.ts
vendored
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
/**
|
||||
* Response element
|
||||
* @constructor
|
||||
*/
|
||||
export function Response(): void;
|
||||
export class Response {
|
||||
element: string;
|
||||
nestables: string[];
|
||||
valid_attributes: any[];
|
||||
elem: object;
|
||||
add: (new_element: object, body: string, attributes: object) => object;
|
||||
addConference: (body: string, attributes: {
|
||||
muted?: boolean;
|
||||
enterSound?: string;
|
||||
exitSound?: string;
|
||||
startConferenceOnEnter?: boolean;
|
||||
endConferenceOnExit?: boolean;
|
||||
stayAlone?: boolean;
|
||||
waitSound?: string;
|
||||
maxMembers?: number;
|
||||
record?: boolean;
|
||||
recordFileFormat?: string;
|
||||
timeLimit?: number;
|
||||
hangupOnStar?: boolean;
|
||||
action?: string;
|
||||
method?: string;
|
||||
callbackUrl?: string;
|
||||
callbackMethod?: string;
|
||||
digitsMatch?: string;
|
||||
floorEvent?: boolean;
|
||||
redirect?: boolean;
|
||||
relayDTMF?: boolean;
|
||||
}) => object;
|
||||
addNumber: (body: string, attributes: {
|
||||
sendDigits?: string;
|
||||
sendOnPreanswer?: boolean;
|
||||
}) => object;
|
||||
addUser: (body: string, attributes: {
|
||||
sendDigits?: string;
|
||||
sendOnPreanswer?: boolean;
|
||||
sipHeaders?: string;
|
||||
}) => object;
|
||||
addDial: (attributes: {
|
||||
action?: string;
|
||||
method?: string;
|
||||
hangupOnStar?: boolean;
|
||||
timeLimit?: number;
|
||||
timeout?: number;
|
||||
callerID?: string;
|
||||
callerName?: string;
|
||||
confirmSound?: string;
|
||||
confirmKey?: string;
|
||||
dialMusic?: string;
|
||||
callbackUrl?: string;
|
||||
callbackMethod?: string;
|
||||
redirect?: boolean;
|
||||
digitsMatch?: string;
|
||||
digitsMatchBLeg?: string;
|
||||
sipHeaders?: string;
|
||||
}) => object;
|
||||
addGetDigits: (attributes: {
|
||||
action?: string;
|
||||
method?: string;
|
||||
timeout?: number;
|
||||
digitTimeout?: number;
|
||||
finishOnKey?: string;
|
||||
numDigits?: number;
|
||||
retries?: number;
|
||||
redirect?: boolean;
|
||||
playBeep?: boolean;
|
||||
validDigits?: string;
|
||||
invalidDigitsSound?: string;
|
||||
log?: boolean;
|
||||
}) => object;
|
||||
addGetInput: (attributes: {
|
||||
action?: string;
|
||||
method?: string;
|
||||
inputType?: string;
|
||||
executionTimeout?: number;
|
||||
digitEndTimeout?: number;
|
||||
speechEndTimeout?: number;
|
||||
finishOnKey?: string;
|
||||
numDigits?: number;
|
||||
speechModel?: string;
|
||||
hints?: string;
|
||||
language?: string;
|
||||
interimSpeechResultsCallback?: string;
|
||||
interimSpeechResultsCallbackMethod?: string;
|
||||
log?: boolean;
|
||||
redirect?: boolean;
|
||||
profanityFilter?: string;
|
||||
}) => object;
|
||||
addHangup: (attributes: {
|
||||
reason?: string;
|
||||
schedule?: number;
|
||||
}) => object;
|
||||
addMessage: (body: string, attributes: {
|
||||
src?: string;
|
||||
dst?: string;
|
||||
type?: string;
|
||||
callbackUrl?: string;
|
||||
callbackMethod?: string;
|
||||
}) => object;
|
||||
addPlay: (body: string, attributes: {
|
||||
loop?: number;
|
||||
}) => object;
|
||||
addPreAnswer: () => any;
|
||||
addRecord: (attributes: {
|
||||
action?: string;
|
||||
method?: string;
|
||||
fileFormat?: string;
|
||||
redirect?: boolean;
|
||||
timeout?: number;
|
||||
maxLength?: number;
|
||||
playBeep?: boolean;
|
||||
finishOnKey?: string;
|
||||
recordSession?: boolean;
|
||||
startOnDialAnswer?: boolean;
|
||||
transcriptionType?: string;
|
||||
transcriptionUrl?: string;
|
||||
transcriptionMethod?: string;
|
||||
callbackUrl?: string;
|
||||
callbackMethod?: string;
|
||||
}) => object;
|
||||
addRedirect: (body: string, attributes: {
|
||||
method?: string;
|
||||
}) => object;
|
||||
addSpeak: (body: string, attributes: {
|
||||
voice?: string;
|
||||
language?: string;
|
||||
loop?: number;
|
||||
}) => object;
|
||||
addBreak: (attributes: {
|
||||
strength?: string;
|
||||
time?: string;
|
||||
}) => object;
|
||||
addEmphasis: (body: string, attributes: {
|
||||
level?: string;
|
||||
}) => object;
|
||||
addLang: (body: string, attributes: {
|
||||
xml?: string;
|
||||
}) => object;
|
||||
addP: (body: string) => any;
|
||||
addPhoneme: (body: string, attributes: {
|
||||
alphabet?: string;
|
||||
ph?: string;
|
||||
}) => object;
|
||||
addProsody: (body: string, attributes: {
|
||||
pitch?: string;
|
||||
rate?: string;
|
||||
volume?: string;
|
||||
}) => object;
|
||||
addS: (body: string) => any;
|
||||
addSayAs: (body: string, attributes: {
|
||||
interpret?: string;
|
||||
format?: string;
|
||||
}) => object;
|
||||
addSub: (body: string, attributes: {
|
||||
alias?: string;
|
||||
}) => object;
|
||||
addW: (body: string, attributes: {
|
||||
role?: string;
|
||||
}) => object;
|
||||
addText: (body: string) => object;
|
||||
addWait: (attributes: {
|
||||
length?: number;
|
||||
silence?: boolean;
|
||||
minSilence?: number;
|
||||
beep?: boolean;
|
||||
}) => object;
|
||||
addDTMF: (body: string, attributes: {
|
||||
async?: boolean;
|
||||
}) => object;
|
||||
toXML: () => string;
|
||||
toJSON: string;
|
||||
}
|
||||
export class PlivoXMLError extends Error {
|
||||
constructor(message?: string);
|
||||
}
|
||||
3
types/utils/security.d.ts
vendored
Normal file
3
types/utils/security.d.ts
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
export function computeOldSignature(authid: string, uri: string, params: object): boolean;
|
||||
export function verifyOldSignature(authid: string, uri: string, params: object, signature: string): boolean;
|
||||
export function validateSignature(uri: string, nonce: string, signature: string, auth_token: string): boolean;
|
||||
1
types/utils/v3Security.d.ts
vendored
Normal file
1
types/utils/v3Security.d.ts
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
export function validateV3Signature(method:string, uri: string, nonce: string, auth_token: string, v3_signature: string, params?: {}): boolean;
|
||||
0
types/version.d.ts
vendored
Normal file
0
types/version.d.ts
vendored
Normal file
Loading…
Add table
Add a link
Reference in a new issue