diff --git a/README.md b/README.md index c9cb83c..ffb48fe 100644 --- a/README.md +++ b/README.md @@ -98,3 +98,11 @@ Methods (token based authentication) }).catch((err)=>{ ... }); + +### Remove all tokens + + adminClient.removeAllTokens().then((res)=>{ + ... + }).catch((err)=>{ + ... + }); diff --git a/src/admin.js b/src/admin.js index e26d36c..441698e 100644 --- a/src/admin.js +++ b/src/admin.js @@ -229,6 +229,22 @@ class Admin { }); } + removeAllTokens() { + return new Promise((resolve, reject)=>{ + this.listTokens().then((res)=>{ + var tokenRemovePromises = []; + _.forEach(res.tokens, (token)=>{ + tokenRemovePromises.push(this.removeToken(token.token)); + }); + return Promise.all(tokenRemovePromises); + }).then(()=>{ + resolve(); + }).catch((err)=>{ + reject(err); + }); + }); + } + } module.exports.JanusAdmin = Admin; diff --git a/test/admin-spec.js b/test/admin-spec.js index 5ad8d31..b8df06e 100644 --- a/test/admin-spec.js +++ b/test/admin-spec.js @@ -176,7 +176,15 @@ describe('Admin', function() { }); it('should remove a token', function(done){ - adminClient.removeToken(exampleToken).then((res)=>{ + adminClient.removeToken(exampleToken).then(()=>{ + done(); + }).catch((err)=>{ + done(err); + }); + }); + + it('should remove all tokens', function(done){ + adminClient.removeAllTokens().then(()=>{ done(); }).catch((err)=>{ done(err);