UNPKG

heroku

Version:

CLI to interact with Heroku

39 lines (38 loc) 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const color_1 = require("@heroku-cli/color"); const command_1 = require("@heroku-cli/command"); const core_1 = require("@oclif/core"); const clients_1 = require("../../lib/clients/clients"); const isEmpty = (o) => Object.keys(o).length === 0; const getUpdates = (flags) => { const updates = {}; if (flags.url) updates.redirect_uri = (0, clients_1.validateURL)(flags.url); if (flags.name) updates.name = flags.name; return updates; }; class ClientsUpdate extends command_1.Command { async run() { const { args, flags } = await this.parse(ClientsUpdate); const body = getUpdates(flags); if (isEmpty(body)) this.error('No changes provided.'); core_1.ux.action.start(`Updating ${color_1.default.cyan(args.id)}`); await this.heroku.patch(`/oauth/clients/${encodeURIComponent(args.id)}`, { body }); core_1.ux.action.stop(); } } exports.default = ClientsUpdate; ClientsUpdate.description = 'update OAuth client'; ClientsUpdate.examples = [ '$ heroku clients:update 3e304bda-d376-4278-bdea-6d6c08aa1359 --url https://amazing-client.herokuapp.com/auth/heroku/callback', ]; ClientsUpdate.flags = { name: command_1.flags.string({ char: 'n', description: 'change the client name' }), url: command_1.flags.string({ description: 'change the client redirect URL' }), }; ClientsUpdate.args = { id: core_1.Args.string({ required: true, description: 'ID of the OAuth client' }), };