heroku/heroku-orgs

View on GitHub
commands/apps/lock.js

Summary

Maintainability
A
45 mins
Test Coverage
'use strict'

let cli = require('heroku-cli-util')
let co = require('co')

function * run (context, heroku) {
  let app = yield heroku.get(`/organizations/apps/${context.app}`)
  if (app.locked) {
    throw new Error(`Error: cannot lock ${cli.color.cyan(app.name)}
This app is already locked.`)
  }
  let request = heroku.request({
    method: 'PATCH',
    path: `/organizations/apps/${app.name}`,
    body: {locked: true}
  })
  yield cli.action(`Locking ${cli.color.cyan(app.name)}`, request)
}

let cmd = {
  description: 'prevent organization members from joining an app',
  needsAuth: true,
  needsApp: true,
  run: cli.command(co.wrap(run))
}

module.exports = [
  Object.assign({topic: 'apps', command: 'lock'}, cmd),
  Object.assign({topic: 'lock'}, cmd)
]