diff --git a/CHANGELOG.md b/CHANGELOG.md index 7626d806..96dcb77b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Change Log +## [4.4.0](https://github.com/plivo/plivo-node/releases/tag/v4.4.0)(2020-03-30) +- Add Tollfree support for Powerpack + ## [4.3.0](https://github.com/plivo/plivo-node/releases/tag/v4.3.0)(2020-03-27) - Add post call quality feedback API support. diff --git a/lib/resources/powerpacks.js b/lib/resources/powerpacks.js index 71c9cac4..e2706e04 100644 --- a/lib/resources/powerpacks.js +++ b/lib/resources/powerpacks.js @@ -98,16 +98,28 @@ export class Powerpack extends PlivoResource { let path = 'NumberPool/' + this.number_pool_id + '/Number/' + number + '/'; return super.customexecuteAction(path.toString().trim(), 'POST', params); } + add_tollfree(tollfree) { + var params = {}; + params['rent'] = 'false'; + let path = 'NumberPool/' + this.number_pool_id + '/Tollfree/' + tollfree + '/'; + return super.customexecuteAction(path.toString().trim(), 'POST', params); + } remove_number(number, unrent = false) { var params = {}; - if (typeof unrent === 'boolean') { - params['unrent'] = unrent.toString(); - } else { - params['unrent'] = unrent; - } + params['unrent'] = unrent.toString(); let path = 'NumberPool/' + this.number_pool_id + '/Number/' + number + '/'; return super.customexecuteAction(path.toString().trim(), 'DELETE', params); } + remove_tollfree(tollfree, unrent = false) { + var params = {}; + params['unrent'] = unrent.toString(); + let path = 'NumberPool/' + this.number_pool_id + '/Tollfree/' + tollfree + '/'; + return super.customexecuteAction(path.toString().trim(), 'DELETE', params); + } + remove_shortcode(shortcode) { + let path = 'NumberPool/' + this.number_pool_id + '/Shortcode/' + shortcode + '/'; + return super.customexecuteAction(path.toString().trim(), 'DELETE'); + } list_shortcodes(params) { if (params === undefined) { params = {}; @@ -115,10 +127,21 @@ export class Powerpack extends PlivoResource { let path = 'NumberPool/' + this.number_pool_id + '/Shortcode/'; return super.customexecuteAction(path.toString().trim(), 'GET', params); } + list_tollfree(params) { + if (params === undefined) { + params = {}; + } + let path = 'NumberPool/' + this.number_pool_id + '/Tollfree/'; + return super.customexecuteAction(path.toString().trim(), 'GET', params); + } find_shortcode(shortcode) { let path = 'NumberPool/' + this.number_pool_id + '/Shortcode/' + shortcode + '/'; return super.customexecuteAction(path.toString().trim(), 'GET'); } + find_tollfree(tollfree) { + let path = 'NumberPool/' + this.number_pool_id + '/Tollfree/' + tollfree + '/'; + return super.customexecuteAction(path.toString().trim(), 'GET'); + } buy_add_number(params) { var number = params.number; var rentparam = {}; @@ -184,6 +207,9 @@ export class NumberPool extends PlivoResource { this.shortcodes = new Shortcode(client, { number_pool_id: data.number_pool_id }); + this.tollfree = new Tollfree(client, { + number_pool_id: data.number_pool_id + }); extend(this, data); } @@ -286,11 +312,7 @@ export class Numbers extends PlivoResource { } remove(number, unrent = false) { var params = {}; - if (typeof unrent === 'boolean') { - params['unrent'] = unrent.toString(); - } else { - params['unrent'] = unrent; - } + params['unrent'] = unrent.toString(); let path = 'NumberPool/' + this.number_pool_id + '/Number/' + number + '/'; return super.customexecuteAction(path.toString().trim(), 'DELETE', params); } @@ -312,6 +334,40 @@ export class Shortcode extends PlivoResource { let path = 'NumberPool/' + this.number_pool_id + '/Shortcode/' + shortcode + '/'; return super.customexecuteAction(path.toString().trim(), 'GET'); } + remove(shortcode) { + let path = 'NumberPool/' + this.number_pool_id + '/Shortcode/' + shortcode + '/'; + return super.customexecuteAction(path.toString().trim(), 'DELETE'); + } +} +export class Tollfree extends PlivoResource { + constructor(client, data = {}) { + super(action, Tollfree, numberPoolField, client); + extend(this, data); + this.number_pool_id = data.number_pool_id; + } + add(tollfree) { + var params = {}; + params['rent'] = 'false'; + let path = 'NumberPool/' + this.number_pool_id + '/Tollfree/' + tollfree + '/'; + return super.customexecuteAction(path.toString().trim(), 'POST', params); + } + remove(tollfree, unrent = false) { + var params = {}; + params['unrent'] = unrent.toString(); + let path = 'NumberPool/' + this.number_pool_id + '/Tollfree/' + tollfree + '/'; + return super.customexecuteAction(path.toString().trim(), 'DELETE', params); + } + list(params) { + if (params === undefined) { + params = {}; + } + let path = 'NumberPool/' + this.number_pool_id + '/Tollfree/'; + return super.customexecuteAction(path.toString().trim(), 'GET', params); + } + find(tollfree) { + let path = 'NumberPool/' + this.number_pool_id + '/Tollfree/' + tollfree + '/'; + return super.customexecuteAction(path.toString().trim(), 'GET'); + } } /** * Represents a Powerpack interface diff --git a/package.json b/package.json index ad0297d7..62152836 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "plivo", - "version": "4.3.0", + "version": "4.4.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": [ diff --git a/test/powerpacks.js b/test/powerpacks.js index 99566464..a7cc8973 100644 --- a/test/powerpacks.js +++ b/test/powerpacks.js @@ -87,5 +87,52 @@ describe('PowerpackInterface', function () { assert.notEqual(result.length, 0) }) }); + it('list tollfree via interface', function () { + client.powerpacks.get("5ec4c8c9-cd74-42b5-9e41-0d7670d6bb46").then( + function (powerpack) { + return powerpack.list_tollfree() + }) + .then(function (result) { + assert.notEqual(result.length, 0) + }) + }); + it('find tollfree via interface', function () { + client.powerpacks.get("5ec4c8c9-cd74-42b5-9e41-0d7670d6bb46").then( + function (powerpack) { + return powerpack.find_tollfree('18772209942') + }) + .then(function (result) { + assert.Equal(result.number, "18772209942") + }) + }); + it('add tollfree to powerpack via interface', function () { + client.powerpacks.get("5ec4c8c9-cd74-42b5-9e41-0d7670d6bb46").then( + function (powerpack) { + return powerpack.add_tollfree('18772209942') + }) + .then(function (result) { + assert.Equal(result.number, "18772209942") + }) + }); + it('remove tollfree via interface', function () { + client.powerpacks.get("5ec4c8c9-cd74-42b5-9e41-0d7670d6bb46").then( + function (powerpack) { + return powerpack.remove_tollfree("18772209942", true) + }) + .then(function (result) { + assert.notEqual(result.response, "success") + }) + }); + + it('remove shortcode via interface', function () { + client.powerpacks.get("5ec4c8c9-cd74-42b5-9e41-0d7670d6bb46").then( + function (powerpack) { + return powerpack.remove_shortcode("444444") + }) + .then(function (result) { + assert.notEqual(result.response, "success") + }) + }); }); +