1 | var Domo = require('ryuu-client-beta');
|
2 | var Login = require('../util/login');
|
3 | var design = require('../util/design');
|
4 | var log = require('../util/log');
|
5 | var evoke = require('../util/evoke');
|
6 | var inquirer = require('inquirer');
|
7 | var constants = require('../util/constants');
|
8 |
|
9 | module.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 | }
|