blob: 418a9df1d5a9648cbaede72d33077c925f30dd37 [file] [log] [blame]
'use strict'
const messages = require('./messages')
const BaseOperation = require('./base_operation')
class Packages extends BaseOperation {
list (options) {
options = options || {}
const namespace = this.namespace(options)
const params = this.params('GET', `namespaces/${namespace}/packages`)
params.qs = this.qs(options || {}, ['skip', 'limit', 'public'])
return this.request(params)
}
get (options) {
return this.request(this.packageName('GET', options))
}
delete (options) {
return this.request(this.packageName('DELETE', options))
}
create (options) {
const params = this.packageName('PUT', options)
params.body = options.package || {}
params.qs = this.qs(options, ['overwrite'])
return this.request(params)
}
update (options) {
options.overwrite = true
return this.create(options)
}
packageName (method, options) {
if (!options.hasOwnProperty('packageName')) {
throw new Error(messages.MISSING_PACKAGE_ERROR)
}
const packageName = options.packageName
const namespace = this.namespace(options)
const params = this.params(method, `namespaces/${namespace}/packages/${packageName}`)
return params
}
}
module.exports = Packages