UNPKG

@hotglue/cli

Version:
108 lines (89 loc) 3.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handler = exports.desc = exports.command = exports.builder = void 0; var _debug = _interopRequireDefault(require("../../helpers/debug")); var _ora = _interopRequireDefault(require("ora")); var _axios = _interopRequireDefault(require("axios/dist/node/axios.cjs")); var _cliTable = _interopRequireDefault(require("cli-table")); var _descriptions = _interopRequireDefault(require("../../helpers/descriptions")); var _print = require("../../helpers/print"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const debug = (...args) => { const debug = (0, _debug.default)('commands:jobs:list'); debug(...args); }; const command = 'list'; exports.command = command; const desc = 'List jobs'; exports.desc = desc; const builder = async yargs => { debug('builder', command); return yargs.option('flow', _descriptions.default.options['flow'].config).demandOption('flow', _descriptions.default.options['flow'].demandText).option('tenant', { ..._descriptions.default.options['tenant'].config, default: 'default' }).option('count', _descriptions.default.options['count'].config); }; exports.builder = builder; const handler = async argv => { debug('handler', command, argv); const { hg, json, apikey, env, flow, tenant, count } = argv; const { clientApiBaseUri } = hg; let message; let spinner = (0, _ora.default)(); try { // 1. get data from client-api backend message = (0, _print.themed)(`Retrieving jobs for environment: ${(0, _print.themed)(env, 'info')} flow: ${(0, _print.themed)(flow, 'info')} tenant: ${(0, _print.themed)(tenant, 'info')}...`); const uri = `${clientApiBaseUri}/${env}/${flow}/${tenant}/jobs${count ? `?count=${count}` : ''}`; debug('requesting:', uri); !json && spinner.start((0, _print.themed)(`In progress: ${message}...`, 'secondary')); const { data } = await _axios.default.get(uri, { headers: { 'x-api-key': apikey } }); !json && spinner.succeed((0, _print.themed)(`Finished: ${message}.`, 'secondary')); debug('response-data', data); // exit if there is no data if (!data || data.length === 0) { json ? (0, _print.printJSON)([]) : spinner.warn((0, _print.themed)(`Warning: ${(0, _print.themed)('No jobs for the specified environment, flow and tenant')}.`, 'secondary')); return; } if (json) { (0, _print.printJSON)(data); } else { // generate results table const table = new _cliTable.default({ head: ['name', 'details'] }); data.forEach(item => table.push([item.job_name, JSON.stringify(item, undefined, 2)])); // print results console.log(table.toString()); } } catch (err) { if (json) { (0, _print.printJSON)({ status: 'error', error: err }); } else { spinner.fail((0, _print.themed)(`Error: ${message}.`, 'secondary')); (0, _print.pr)((0, _print.themed)(`Message: ${(0, _print.themed)(err.message)}`, 'secondary')); debug(err); if (err && err.response && err.response.data) { debug('response', err.response.data); } } } }; exports.handler = handler;