Merge pull request #85 from plivo/sept_2018_release

Sept 2018 release
This commit is contained in:
Sachin Kulshrestha 2018-09-18 16:33:51 +05:30 committed by GitHub
commit 59c445bbcd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 86 additions and 1 deletions

View file

@ -1,5 +1,9 @@
# Change Log
## [4.0.3](https://github.com/plivo/plivo-node/releases/tag/v4.0.3)(2018-09-18)
- Queued status added for filtering calls in queued status.
- Added log_incoming_messages parameter to application create and update.
## [4.0.2](https://github.com/plivo/plivo-node/releases/tag/v4.0.2)(2018-08-14)
- Add Powerpack option for sending messages.

View file

@ -37,6 +37,8 @@ export class Application extends PlivoResource {
* @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
*/
@ -99,6 +101,7 @@ export class ApplicationInterface extends PlivoResourceInterface {
* @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
*/
@ -133,6 +136,7 @@ export class ApplicationInterface extends PlivoResourceInterface {
* @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
*/

View file

@ -201,6 +201,7 @@ export class Call extends PlivoResource {
}
const liveCallInterfaceKey = Symbol('liveCallInterface');
const queuedCallInterfaceKey = Symbol('queuedCallInterface');
/**
* Represents a Call Interface
@ -216,6 +217,7 @@ export class CallInterface extends PlivoResourceInterface {
this[clientKey] = client;
this[liveCallInterfaceKey] = new LiveCallInterface(client);
this[queuedCallInterfaceKey] = new QueuedCallInterface(client);
}
/**
@ -515,6 +517,14 @@ export class CallInterface extends PlivoResourceInterface {
getLiveCall(id) {
return this[liveCallInterfaceKey].get(id);
}
listQueuedCalls() {
return this[queuedCallInterfaceKey].list();
}
getQueuedCall(id) {
return this[queuedCallInterfaceKey].get(id);
}
}
export class LiveCallResource extends PlivoResource {
@ -530,6 +540,19 @@ export class LiveCallResource extends PlivoResource {
}
}
export class QueuedCallResource extends PlivoResource {
constructor(client, data = {}) {
super(action, QueuedCallResource, idField, client);
if (idField in data) {
this.id = data[idField];
}
extend(this, data);
this[clientKey] = client;
}
}
/**
* Represents a LiveCall interface
* @constructor
@ -582,3 +605,57 @@ class LiveCallInterface extends PlivoResourceInterface {
});
}
}
/**
* Represents a QueuedCall interface
* @constructor
* @param {function} client - make api call
* @param {object} [data] - data of call
*/
class QueuedCallInterface extends PlivoResourceInterface {
constructor(client, data = {}) {
super(action, QueuedCallResource, idField, client);
extend(this, data);
this[clientKey] = client;
}
/**
* Get A Queued Call Detail
* @method
* @param {string} id - call uuid to get information of.
* @promise {object} returns QueuedCallResource Object
* @fail {Error} returns Error
*/
get(id) {
let errors = validate([{field: 'id', value: id, validators: ['isRequired']}]);
if (errors) {
return errors;
}
return super.get(id, {
status: 'queued',
});
}
list() {
let client = this[clientKey];
return new Promise((resolve, reject) => {
client('GET', action, {status: 'queued'})
.then(response => {
let calls = [];
response.body.calls.forEach(callUuid => {
calls.push(new QueuedCallResource(client, {
callUuid: callUuid
}));
});
resolve(calls);
})
.catch(error => {
reject(error);
});
});
}
}

View file

@ -1,6 +1,6 @@
{
"name": "plivo",
"version": "4.0.2",
"version": "4.0.3",
"description": "A Node.js SDK to make voice calls & send SMS using Plivo and to generate Plivo XML",
"homepage": "https://github.com/plivo/plivo-node",
"files": [