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