UNPKG

salesforce-alm

Version:

This package contains tools, and APIs, for an improved salesforce.com developer experience.

103 lines (101 loc) 4.87 kB
"use strict"; /* * Copyright (c) 2020, salesforce.com, inc. * All rights reserved. * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ // Local const Messages = require("../messages"); const messages = Messages(); const logger = require("../core/logApi"); const pkgUtils = require("./packageUtils"); const PackageVersionCreateRequestApi = require("./packageVersionCreateRequestApi"); const ERROR_LIMIT = 12; class PackageVersionCreateRequestReportCommand { constructor() { this.logger = logger.child('package:version:create:report'); } execute(context) { return this._execute(context).catch((err) => { // TODO // until package2 is GA, wrap perm-based errors w/ 'contact sfdc' action (REMOVE once package2 is GA'd) throw pkgUtils.applyErrorAction(err); }); } _execute(context) { pkgUtils.validateId(pkgUtils.BY_LABEL.PACKAGE_VERSION_CREATE_REQUEST_ID, context.flags.packagecreaterequestid); this.packageVersionCreateRequestApi = new PackageVersionCreateRequestApi(context.org.force, context.org); return this.packageVersionCreateRequestApi.byId(context.flags.packagecreaterequestid).then((records) => { if (context.flags.json) { return records; } else if (records && records.length > 0) { const record = records[0]; const installUrlValue = record.Status === 'Success' ? pkgUtils.INSTALL_URL_BASE + record.SubscriberPackageVersionId : ''; const data = [ { key: messages.getMessage('id', [], 'package_version_create_list'), value: record.Id, }, { key: messages.getMessage('status', [], 'package_version_create_list'), value: pkgUtils.convertCamelCaseStringToSentence(record.Status), }, { key: messages.getMessage('packageId', [], 'package_version_create_list'), value: record.Package2Id, }, { key: messages.getMessage('packageVersionId', [], 'package_version_create_list'), value: record.Package2VersionId, }, { key: messages.getMessage('subscriberPackageVersionId', [], 'package_version_create_list'), value: record.SubscriberPackageVersionId, }, { key: messages.getMessage('tag', [], 'package_version_create_list'), value: record.Tag, }, { key: messages.getMessage('branch', [], 'package_version_create_list'), value: record.Branch, }, { key: 'Created Date', value: record.CreatedDate }, { key: messages.getMessage('installUrl', [], 'package_version_create_list'), value: installUrlValue, }, { key: messages.getMessage('createdBy', [], 'package_list'), value: record.CreatedBy, }, ]; this.logger.styledHeader(this.logger.color.blue('Package Version Create Request')); this.logger.table(data, { columns: [ { key: 'key', label: 'Name' }, { key: 'value', label: 'Value' }, ], }); if (record.Error && record.Error.length > 0) { const errors = []; record.Error.slice(0, ERROR_LIMIT).forEach((error) => { errors.push(`(${errors.length + 1}) ${error}`); }); this.logger.styledHeader(this.logger.color.red('Errors')); this.logger.log(errors.join('\n')); // Check if errors were truncated. If so, inform the user with // instructions on how to retrieve the remaining errors. if (record.Error.length > ERROR_LIMIT) { this.logger.log(messages.getMessage('truncatedErrors', context.flags.packagecreaterequestid, 'package_version_create_report')); } } } return null; }); } } module.exports = PackageVersionCreateRequestReportCommand; //# sourceMappingURL=packageVersionCreateRequestReportCommand.js.map