summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/npm-registry-client/lib/team.js
diff options
context:
space:
mode:
authorKat Marchán <kzm@sykosomatic.org>2015-09-04 14:47:14 -0700
committerRod Vagg <rod@vagg.org>2015-09-06 21:38:09 +1000
commitd15ba80d6f7a473a70081768500260429ecb6218 (patch)
treed83559d4277c56eab5fffb986dd1e4ec8db94a4b /deps/npm/node_modules/npm-registry-client/lib/team.js
parentb4f1711a629251f6aab7615907fe7358881e0648 (diff)
downloadandroid-node-v8-d15ba80d6f7a473a70081768500260429ecb6218.tar.gz
android-node-v8-d15ba80d6f7a473a70081768500260429ecb6218.tar.bz2
android-node-v8-d15ba80d6f7a473a70081768500260429ecb6218.zip
deps: upgrade to npm 2.14.2
PR-URL: https://github.com/nodejs/node/pull/2696 Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com> Reviewed-By: Rod Vagg <rod@vagg.org>
Diffstat (limited to 'deps/npm/node_modules/npm-registry-client/lib/team.js')
-rw-r--r--deps/npm/node_modules/npm-registry-client/lib/team.js105
1 files changed, 105 insertions, 0 deletions
diff --git a/deps/npm/node_modules/npm-registry-client/lib/team.js b/deps/npm/node_modules/npm-registry-client/lib/team.js
new file mode 100644
index 0000000000..3e3794e047
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/lib/team.js
@@ -0,0 +1,105 @@
+module.exports = team
+
+var assert = require('assert')
+var url = require('url')
+
+var subcommands = {}
+
+function team (sub, uri, params, cb) {
+ teamAssertions(sub, uri, params, cb)
+ return subcommands[sub].call(this, uri, params, cb)
+}
+
+subcommands.create = function (uri, params, cb) {
+ return this.request(apiUri(uri, 'org', params.scope, 'team'), {
+ method: 'PUT',
+ auth: params.auth,
+ body: JSON.stringify({
+ name: params.team
+ })
+ }, cb)
+}
+
+subcommands.destroy = function (uri, params, cb) {
+ return this.request(apiUri(uri, 'team', params.scope, params.team), {
+ method: 'DELETE',
+ auth: params.auth
+ }, cb)
+}
+
+subcommands.add = function (uri, params, cb) {
+ return this.request(apiUri(uri, 'team', params.scope, params.team, 'user'), {
+ method: 'PUT',
+ auth: params.auth,
+ body: JSON.stringify({
+ user: params.user
+ })
+ }, cb)
+}
+
+subcommands.rm = function (uri, params, cb) {
+ return this.request(apiUri(uri, 'team', params.scope, params.team, 'user'), {
+ method: 'DELETE',
+ auth: params.auth,
+ body: JSON.stringify({
+ user: params.user
+ })
+ }, cb)
+}
+
+subcommands.ls = function (uri, params, cb) {
+ var uriParams = '?format=cli'
+ if (params.team) {
+ var reqUri = apiUri(
+ uri, 'team', params.scope, params.team, 'user') + uriParams
+ return this.request(reqUri, {
+ method: 'GET',
+ auth: params.auth
+ }, cb)
+ } else {
+ return this.request(apiUri(uri, 'org', params.scope, 'team') + uriParams, {
+ method: 'GET',
+ auth: params.auth
+ }, cb)
+ }
+}
+
+// TODO - we punted this to v2
+// subcommands.edit = function (uri, params, cb) {
+// return this.request(apiUri(uri, 'team', params.scope, params.team, 'user'), {
+// method: 'POST',
+// auth: params.auth,
+// body: JSON.stringify({
+// users: params.users
+// })
+// }, cb)
+// }
+
+function apiUri (registryUri) {
+ var path = Array.prototype.slice.call(arguments, 1)
+ .map(encodeURIComponent)
+ .join('/')
+ return url.resolve(registryUri, '-/' + path)
+}
+
+function teamAssertions (subcommand, uri, params, cb) {
+ assert(subcommand, 'subcommand is required')
+ assert(subcommands.hasOwnProperty(subcommand),
+ 'team subcommand must be one of ' + Object.keys(subcommands))
+ assert(typeof uri === 'string', 'registry URI is required')
+ assert(typeof params === 'object', 'params are required')
+ assert(typeof params.auth === 'object', 'auth is required')
+ assert(typeof params.scope === 'string', 'scope is required')
+ assert(!cb || typeof cb === 'function', 'callback must be a function')
+ if (subcommand !== 'ls') {
+ assert(typeof params.team === 'string', 'team name is required')
+ }
+ if (subcommand === 'rm' || subcommand === 'add') {
+ assert(typeof params.user === 'string', 'user is required')
+ }
+ if (subcommand === 'edit') {
+ assert(typeof params.users === 'object' &&
+ params.users.length != null,
+ 'users is required')
+ }
+}