UNPKG

1.58 kBJavaScriptView Raw
1var Domo = require('ryuu-client-beta');
2var Login = require('../util/login');
3var design = require('../util/design');
4var log = require('../util/log');
5var evoke = require('../util/evoke');
6var inquirer = require('inquirer');
7var constants = require('../util/constants');
8
9module.exports = function(program) {
10 program
11 .command('delete [id]')
12 .description('delete a published design')
13 .option('-i, --design_id <id>', '[DEPRECATED] Specify design ID, otherwise it is retrieved from a manifest file')
14 .option('-f, --force', 'Delete the design even if it is referenced by Custom Apps')
15 .action(function(arg, options) {
16
17 var designId = design.getDesignId(arg, options.design_id, program.manifest);
18
19 inquirer.prompt([{
20 type: 'confirm',
21 message: 'Are you sure you want to delete design with id: ' + designId + '?',
22 name: 'delete',
23 default: false
24 }], handleUserResponse);
25
26 function handleUserResponse(answer) {
27 if (answer.delete) {
28 var force = false;
29 var login = Login.getMostRecentLogin();
30
31 if (options.force) force = true;
32 Login.verifyLogin(login);
33
34 var domo = new Domo(login.instance, login.refreshToken, constants.CLIENT_ID);
35
36 domo.deleteDesign(designId, force)
37 .tap(evoke(log.ok, 'Deleted design ' + designId))
38 .catch(evoke(log.clientRequestFailed, 'Unable to delete design ' + designId))
39 .finally(process.exit);
40 } else {
41 log.fail('Delete command aborted');
42 }
43 }
44
45 });
46}