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