1 | var fs = require('fs');
|
2 | var inquirer = require('inquirer');
|
3 | var log = require('../lib/log');
|
4 | var api = require('../lib/api');
|
5 | var Table = require('cli-table');
|
6 | var _ = require('lodash');
|
7 | var moment = require('moment');
|
8 | var urljoin = require('url-join');
|
9 | var helper = require('../lib/helper');
|
10 | var chalk = require('chalk');
|
11 |
|
12 |
|
13 | module.exports = function(program, done) {
|
14 |
|
15 |
|
16 |
|
17 | api(program, {
|
18 | method: 'GET',
|
19 | path: '/profile/orgs'
|
20 | }, function(err, orgs) {
|
21 | if (err) return done(err);
|
22 |
|
23 | if (orgs.length === 0) {
|
24 | log.messageBox("You don't belong to any organizations yet.\n" +
|
25 | "Visit " + urljoin(program.profile.endpoint, '/portal/orgs/create') + " to get started.");
|
26 |
|
27 | return done();
|
28 | }
|
29 |
|
30 | if (orgs.length === 1)
|
31 | return displayApps(orgs[0].orgId);
|
32 |
|
33 | var selectOrgQuestion = helper.pickOrgQuestion(orgs, "Select organization");
|
34 | inquirer.prompt([selectOrgQuestion], function(answers) {
|
35 | displayApps(answers.orgId);
|
36 | });
|
37 | });
|
38 |
|
39 | function displayApps(orgId) {
|
40 | api(program, {
|
41 | method: 'GET',
|
42 | path: '/orgs/' + orgId + '/apps'
|
43 | }, function(err, apps) {
|
44 | if (err) return done(err);
|
45 |
|
46 |
|
47 | var table = new Table({
|
48 | head: [chalk.cyan('name'), chalk.cyan('url'), chalk.cyan('created')],
|
49 | colWidths: [25, 35, 22]
|
50 | });
|
51 |
|
52 | _.each(apps, function(app) {
|
53 | table.push([app.name || '', app.url, moment(app.created).format("MMM D, YYYY")])
|
54 | });
|
55 |
|
56 | console.log(table.toString());
|
57 | done();
|
58 | });
|
59 | }
|
60 | };
|