UNPKG

1.76 kBJavaScriptView Raw
1var inquirer = require('inquirer');
2var Login = require('../util/login');
3var Domo = require('ryuu-client-beta');
4var log = require('../util/log');
5var evoke = require('../util/evoke');
6var constants = require('../util/constants');
7
8module.exports = function(program){
9 program
10 .command('revert')
11 .description('revert a migration, turning a Custom App back into a mason app')
12 .option('-i, --instance <value>', 'Domo instance')
13 .option('-a, --app-id <id>', 'app id')
14 .action(function(args){
15 var mostRecent = Login.getMostRecentLogin();
16 var prompts = [];
17
18 if (!args.instance) {
19 prompts.push({
20 type: "input",
21 message: "Domo instance",
22 name: "instance",
23 default: mostRecent.instance
24 });
25 }
26
27 if (!args.appId) {
28 prompts.push({
29 type: "input",
30 message: "app id",
31 name: "id"
32 });
33 }
34
35 inquirer.prompt(prompts, function(answers) {
36 answers.instance = args.instance || answers.instance;
37 answers.id = args.appId || answers.id;
38
39 var login = Login.getLogin(answers.instance);
40 Login.verifyLogin(login);
41
42 var domo = new Domo(answers.instance, login.refreshToken, constants.CLIENT_ID);
43 domo.getKpi(answers.id)
44 .then(function(kpi){
45 kpi.type = kpi.metadata.chartType = kpi.metadata.kpiType = 'mason';
46 return kpi;
47 })
48 .then(function(kpi){
49 return domo.updateKpi(kpi);
50 })
51 .tap(evoke(log.ok, 'Card reverted back to a mason app'))
52 .catch(evoke(log.clientRequestFailed, 'Error attempting to revert card'))
53 .finally(process.exit)
54 });
55
56 });
57
58}