]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/npm-registry-client/lib/team.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / node_modules / npm-registry-client / lib / team.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/npm-registry-client/lib/team.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/npm-registry-client/lib/team.js
new file mode 100644 (file)
index 0000000..3e3794e
--- /dev/null
@@ -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')
+  }
+}