UNPKG

@petarmihaylov/node-raas

Version:

A tiny library and CLI for interacting with the Reports as a Service - RAAS - API from UKG - Ultimate Kronos Group. This project is maintained by the team behind RaasTastic and the community. It provides a balanced set of features that should suit a broad

137 lines (136 loc) 9.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.logOffAction = exports.retrieveReportAction = exports.executeReportAction = exports.getReportParametersAction = exports.logOnAction = void 0; const tslib_1 = require("tslib"); const chalk_1 = tslib_1.__importDefault(require("chalk")); const core_raas_1 = require("./core-raas"); const errors_1 = require("./errors"); const formatters_1 = require("../utils/formatters"); const cli_ux_1 = tslib_1.__importDefault(require("cli-ux")); async function logOnAction(clients, raasCredential, flags = { verbose: false, }) { // Login - Start cli_ux_1.default.action.start(chalk_1.default.blue('LogOn')); const startTimeLogOn = Date.now(); const logOnResult = await (0, core_raas_1.login)(clients, raasCredential); if (logOnResult.hasErrors) { (0, errors_1.handleBiDataServiceErrors)(logOnResult, 'LogOnResult', flags.verbose); } const msElapsedLogOn = Date.now() - startTimeLogOn; // this.log(`${blue(`LogOn:`)} ${green(`Success`)} | ${blue(`US-CORRELATION-ID:`)} ${magenta(logOnResult.correlationId)}`) cli_ux_1.default.action.stop(`${chalk_1.default.green('Success')} | ${chalk_1.default.blue('US-CORRELATION-ID:')} ${chalk_1.default.magenta(logOnResult.correlationId)} | ${(0, formatters_1.blueMagenta)('Took:', `${msElapsedLogOn / 1000}s`)}`); // Login - End return logOnResult; } exports.logOnAction = logOnAction; async function getReportParametersAction(clients, logOnResult, reportPath, flags = { verbose: false, }) { // GetReportParameters - Start cli_ux_1.default.action.start(chalk_1.default.blue('GetReportParameters')); const startTimerGetReportParameters = Date.now(); const getReportParametersResult = await (0, core_raas_1.getReportParameters)(clients, logOnResult.result[0].LogOnResult, reportPath); // this.log(JSON.stringify(getReportParametersResult, undefined, 2)); // Processing completed const msElapsedGetReportParameters = Date.now() - startTimerGetReportParameters; // In the case of an error if (getReportParametersResult.hasErrors) { cli_ux_1.default.action.stop(`${chalk_1.default.red('Failed')} | ${(0, formatters_1.blueMagenta)('Took:', `${msElapsedGetReportParameters / 1000}s`)}`); (0, errors_1.handleBiDataServiceErrors)(getReportParametersResult, 'GetReportParametersResult', flags.verbose); } // Getting the parameters was successful, so we can note that here cli_ux_1.default.action.stop(`${chalk_1.default.green('Success')} | ${chalk_1.default.blue('US-CORRELATION-ID:')} ${chalk_1.default.magenta(getReportParametersResult.correlationId)} | ${(0, formatters_1.blueMagenta)('Took:', `${msElapsedGetReportParameters / 1000}s`)}`); if (getReportParametersResult.hasWarnings) { const error = flags.verbose ? new Error(`${chalk_1.default.blue('GetReportParameters:')} ${chalk_1.default.red('Warn')} ${chalk_1.default.blue('US-CORRELATION-ID:')} ${chalk_1.default.magenta(getReportParametersResult.correlationId)} ${chalk_1.default.blue('GetReportParametersResult:')} ${chalk_1.default.red(JSON.stringify(getReportParametersResult.result[0].GetReportParametersResult, undefined, 2))} ${chalk_1.default.blue('SOAP Request Headers:')} ${chalk_1.default.red(JSON.stringify(getReportParametersResult.result[2], undefined, 2))} ${chalk_1.default.blue('Raw XML Request:')} ${chalk_1.default.red(JSON.stringify(getReportParametersResult.result[3], undefined, 2))} ${chalk_1.default.blue('Raw XML Response:')} ${chalk_1.default.red(JSON.stringify(getReportParametersResult.result[1], undefined, 2))} Troubleshooting suggestions: ${chalk_1.default.yellow(getReportParametersResult.warningMessage)}`) : new Error(`${chalk_1.default.blue('GetReportParameters:')} ${chalk_1.default.red('Warn')} Required Parameters: ${JSON.stringify(getReportParametersResult.requiredParams, undefined, 2)} Troubleshooting suggestions: ${chalk_1.default.yellow(getReportParametersResult.warningMessage)}`); throw error; } cli_ux_1.default.action.stop(`${chalk_1.default.green('Success')} | ${chalk_1.default.blue('US-CORRELATION-ID:')} ${chalk_1.default.magenta(getReportParametersResult.correlationId)} | ${(0, formatters_1.blueMagenta)('Took:', `${msElapsedGetReportParameters / 1000}s`)}`); // GetReportParameters - End if (flags === null || flags === void 0 ? void 0 : flags.console) { console.log(chalk_1.default.blue(JSON.stringify(getReportParametersResult.result[0].GetReportParametersResult, undefined, 2))); } } exports.getReportParametersAction = getReportParametersAction; async function executeReportAction(clients, logOnResult, reportPath, flags = { verbose: false, }) { // Execute Report - Start cli_ux_1.default.action.start(chalk_1.default.blue('ExecuteReport')); const startTimeExecuteReport = Date.now(); const executeReportResult = await (0, core_raas_1.executeReport)(clients, logOnResult.result[0].LogOnResult, reportPath); // Execute Report action completed const msElapsedExecuteReport = Date.now() - startTimeExecuteReport; if (executeReportResult.hasErrors) { cli_ux_1.default.action.stop(`${chalk_1.default.red('Failed')} | ${(0, formatters_1.blueMagenta)('Took:', `${msElapsedExecuteReport / 1000}s`)}`); (0, errors_1.handleBiDataServiceErrors)(executeReportResult, 'ExecuteReportResult', flags.verbose); } cli_ux_1.default.action.stop(`${chalk_1.default.green('Success')} | ${chalk_1.default.blue('US-CORRELATION-ID:')} ${chalk_1.default.magenta(executeReportResult.correlationId)} | ${(0, formatters_1.blueMagenta)('Took:', `${msElapsedExecuteReport / 1000}s`)}`); // Execute Report - End return executeReportResult; } exports.executeReportAction = executeReportAction; async function retrieveReportAction(clients, executeReportResult, flags = { verbose: false, }) { // Retrieve Report - Start cli_ux_1.default.action.start(chalk_1.default.blue('RetrieveReport')); const startTimeRetrieveReport = Date.now(); const retrieveReportResult = await (0, core_raas_1.retrieveReport)(clients, executeReportResult.result[0].ExecuteReportResult); const msElapsedRetrieveReport = Date.now() - startTimeRetrieveReport; // In the case of an error if (retrieveReportResult.hasErrors) { cli_ux_1.default.action.stop(`${chalk_1.default.green('Success')} | ${(0, formatters_1.blueMagenta)('Took:', `${msElapsedRetrieveReport / 1000}s`)}`); (0, errors_1.handleBiStreamingServiceErrors)(retrieveReportResult, flags.verbose); } // When Status === 'Working' if (retrieveReportResult.hasWarnings) { const error = flags.verbose ? new Error(`${chalk_1.default.blue('RetrieveReport:')} ${chalk_1.default.red('Warn')} ${chalk_1.default.blue('US-CORRELATION-ID:')} ${chalk_1.default.magenta(retrieveReportResult.correlationId)} ${chalk_1.default.blue('ReportStream:')} ${chalk_1.default.red(JSON.stringify(retrieveReportResult.result[0].ReportStream, undefined, 2))} ${chalk_1.default.blue('SOAP Request Headers:')} ${chalk_1.default.red(JSON.stringify(retrieveReportResult.result[2], undefined, 2))} ${chalk_1.default.blue('Raw XML Request:')} ${chalk_1.default.red(JSON.stringify(retrieveReportResult.result[3], undefined, 2))} ${chalk_1.default.blue('Raw XML Response:')} ${chalk_1.default.red(JSON.stringify(retrieveReportResult.result[1], undefined, 2))} Troubleshooting suggestions: ${chalk_1.default.yellow(retrieveReportResult.warningMessage)}`) : new Error(`${chalk_1.default.blue('RetrieveReport:')} ${chalk_1.default.red('Warn')} Troubleshooting suggestions: ${chalk_1.default.yellow(retrieveReportResult.warningMessage)}`); throw error; } cli_ux_1.default.action.stop(`${chalk_1.default.green('Success')} | ${chalk_1.default.blue('US-CORRELATION-ID:')} ${chalk_1.default.magenta(executeReportResult.correlationId)} | ${(0, formatters_1.blueMagenta)('Took:', `${msElapsedRetrieveReport / 1000}s`)}`); // Retrieve Report - End return retrieveReportResult; } exports.retrieveReportAction = retrieveReportAction; async function logOffAction(clients, logOnResult, flags = { verbose: false, }) { // LogOff - Start cli_ux_1.default.action.start(chalk_1.default.blue('LogOff')); const startTimeLogOff = Date.now(); const logOffResult = await (0, core_raas_1.logOff)(clients, logOnResult.result[0].LogOnResult); if (logOnResult.hasErrors) { (0, errors_1.handleBiDataServiceErrors)(logOffResult, 'LogOfResult', flags.verbose); } const msElapsedLogOff = Date.now() - startTimeLogOff; // this.log(`${blue(`LogOn:`)} ${green(`Success`)} | ${blue(`US-CORRELATION-ID:`)} ${magenta(logOnResult.correlationId)}`) cli_ux_1.default.action.stop(`${chalk_1.default.green('Success')} | ${chalk_1.default.blue('US-CORRELATION-ID:')} ${chalk_1.default.magenta(logOnResult.correlationId)} | ${(0, formatters_1.blueMagenta)('Took:', `${msElapsedLogOff / 1000}s`)}`); // LogOff - End return {}; } exports.logOffAction = logOffAction;