All files / api-build/commands ls.js

22.58% Statements 7/31
0% Branches 0/6
0% Functions 0/5
22.58% Lines 7/31
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 541x               1x   1x 1x   1x   1x   1x                                                                        
module.exports.usage = `List deployed/versions/used from the server
 
Usage:
  api ls # Returns deployed services by team
  api ls versions # Returns deployed versions of this service
  api ls used # Returns versions that you are using
`;
 
module.exports.category = 'utility';
 
require('colors');
const request = require('../lib/request');
 
const packageJson = require('../lib/package-json')();
 
module.exports.aliases = ['list'];
 
module.exports.run = (args) => {
  if (args.length === 1) {
    request.get('/services/deployed').then((response) => {
      const teams = JSON.parse(response);
      console.log('\nListing deployed services by team'.green);
      for (const team in teams) {
        console.log(`\n${team.blue}`);
        for (const service in teams[team]) {
          console.log(`  ${service}`);
        }
      }
    });
  } else if (args[1] === 'versions') {
    request.get(`/services/${packageJson.get('name')}`).then((response) => {
      const service = JSON.parse(response);
      const versions = service.versions;
      console.log(`Listing deployed versions for ${packageJson.get('name')}`.blue);
      for (const version of versions) {
        console.log(version.version);
      }
    }).catch(() => {
      console.log(`Service "${packageJson.get('name')}" is not deployed`.red);
    });
  } else if (args[1] === 'used') {
    request.get('/services/used').then((response) => {
      const services = JSON.parse(response);
      console.log('\nListing used services'.green);
      for (const team in services) {
        console.log(`\n${team.blue}`);
        for (const name in services[team]) {
          console.log(`  ${name} v${services[team][name].version.version}`);
        }
      }
    });
  }
};