trouble-in-terror-town/node_modules/another-npm-registry-client/lib/team.js
Mikolaj 2bbacbea09 did some more work on networking and removed EOS in favor of LRM
did some more work on networking and removed EOS in favor of Light Reflective Mirror
2022-05-31 15:04:31 +02:00

105 lines
2.9 KiB
JavaScript

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')
}
}