UNPKG

2.19 kBJavaScriptView Raw
1var Login = require('../util/login');
2var Domo = require('ryuu-client-beta');
3var log = require('../util/log');
4var session = require('../util/session');
5var chalk = require('chalk');
6var constants = require('../util/constants');
7
8module.exports = function(program){
9 program
10 .command('ls')
11 .description('get a list of all your Custom App designs')
12 .action(function(){
13 var login = Login.getMostRecentLogin();
14 Login.verifyLogin(login);
15 var domo = new Domo(login.instance, login.refreshToken, constants.CLIENT_ID);
16
17 session.check(domo)
18 .then(function(){
19
20 domo.getSimpleDesigns().then(function(designs){
21 var windowWidth = process.stdout.columns;
22 if (windowWidth >= 130) {
23 var Table = require('cli-table');
24
25 // instantiate
26 var table = new Table({
27 head: [chalk.cyan('Design Name'), chalk.cyan('Design Id'), chalk.cyan('Date Created'), chalk.cyan('Last Updated')],
28 colWidths: [(windowWidth - 105), 38, 31, 31]
29 });
30
31 designs.forEach(function(design){
32 table.push([design.design.name, design.design.id, new Date(design.design.createdDate).toUTCString(), new Date(design.design.lastModifiedDate).toUTCString()]);
33 });
34
35 console.log(table.toString());
36 }
37
38 else {
39 designs.forEach(function(design){
40 console.log('Design Name: ' + design.design.name);
41 console.log('Design Id: ' + design.design.id);
42 console.log('Date Created: ' + new Date(design.design.createdDate).toUTCString());
43 console.log('Last Updated: ' + new Date(design.design.lastModifiedDate).toUTCString() + '\n');
44 });
45 }
46
47
48 if (designs.length === 0){
49 log.fail('No Designs Published', "`domo ls` will list designs once they're published to Domo");
50 }
51 })
52 .catch(function(e){
53 log.fail('Unable to fetch designs', 'You may not have any designs published yet.');
54 })
55 .finally(process.exit)
56
57 })
58 });
59}