diff --git a/lib/base.js b/lib/base.js index 2607a50..aed64a6 100644 --- a/lib/base.js +++ b/lib/base.js @@ -44,13 +44,13 @@ export class PlivoResource { }); } - delete() { + delete(params) { let client = this[clientKey]; let action = this[actionKey]; let id = this.id; return new Promise((resolve, reject) => { - client('DELETE', action + id + '/') + client('DELETE', action + id + '/', params) .then(() => { resolve(true); }) diff --git a/lib/resources/accounts.js b/lib/resources/accounts.js index c66a0b3..c40b9e7 100644 --- a/lib/resources/accounts.js +++ b/lib/resources/accounts.js @@ -53,11 +53,18 @@ export class Subaccount extends PlivoResource { /** * delete subaccount * @method + * @param {boolean} cascade - delete associated applications, phonenumbers & endpoints * @promise {boolean} return true if subaccount deleted * @fail {Error} return Error */ - delete() { - return super.delete(); + delete(cascade) { + let params = {}; + + if (typeof cascade === 'boolean') { + params.cascade = cascade.toString(); + } + + return super.delete(params); } } @@ -148,10 +155,11 @@ export class SubaccountInterface extends PlivoResourceInterface { * 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) { + delete(id, cascade) { let errors = validate([ {field: 'id', value: id, validators: ['isRequired']} ]); @@ -161,7 +169,7 @@ export class SubaccountInterface extends PlivoResourceInterface { } return new Subaccount(this[clientKey], { id: id - }).delete(); + }).delete(cascade); } }