// Ours const Now = require('../lib') module.exports = class Secrets extends Now { ls() { return this.listSecrets() } rm(nameOrId) { return this.retry(async (bail, attempt) => { if (this._debug) { console.time(`> [debug] #${attempt} DELETE /secrets/${nameOrId}`) } const res = await this._fetch(`/now/secrets/${nameOrId}`, {method: 'DELETE'}) if (this._debug) { console.timeEnd(`> [debug] #${attempt} DELETE /secrets/${nameOrId}`) } if (res.status === 403) { return bail(new Error('Unauthorized')) } const body = await res.json() if (res.status !== 200) { if (res.status === 404 || res.status === 400) { const err = new Error(body.error.message) err.userError = true return bail(err) } throw new Error(body.error.message) } return body }) } add(name, value) { return this.retry(async (bail, attempt) => { if (this._debug) { console.time(`> [debug] #${attempt} POST /secrets`) } const res = await this._fetch('/now/secrets', { method: 'POST', body: { name, value: value.toString() } }) if (this._debug) { console.timeEnd(`> [debug] #${attempt} POST /secrets`) } if (res.status === 403) { return bail(new Error('Unauthorized')) } const body = await res.json() if (res.status !== 200) { if (res.status === 404 || res.status === 400) { const err = new Error(body.error.message) err.userError = true return bail(err) } throw new Error(body.error.message) } return body }) } rename(nameOrId, newName) { return this.retry(async (bail, attempt) => { if (this._debug) { console.time(`> [debug] #${attempt} PATCH /secrets/${nameOrId}`) } const res = await this._fetch(`/now/secrets/${nameOrId}`, { method: 'PATCH', body: { name: newName } }) if (this._debug) { console.timeEnd(`> [debug] #${attempt} PATCH /secrets/${nameOrId}`) } if (res.status === 403) { return bail(new Error('Unauthorized')) } const body = await res.json() if (res.status !== 200) { if (res.status === 404 || res.status === 400) { const err = new Error(body.error.message) err.userError = true return bail(err) } throw new Error(body.error.message) } return body }) } }