UNPKG

appcenter-cli

Version:

Command line tool for Visual Studio App Center

90 lines (89 loc) 5.13 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const commandline_1 = require("../../../util/commandline"); const interaction_1 = require("../../../util/interaction"); const util_1 = require("util"); const debug = require("debug")("appcenter-cli:commands:distribute:groups:show"); let ShowDistributionGroupCommand = class ShowDistributionGroupCommand extends commandline_1.AppCommand { run(client) { return __awaiter(this, void 0, void 0, function* () { const app = this.app; // creating distribution group users list request const distributionGroupMembersRequestResponse = client.distributionGroups.listUsers(app.ownerName, app.appName, this.distributionGroup); // creating releases information request const basicReleasesDetailsRequestResponse = client.releases.listByDistributionGroup(this.distributionGroup, app.ownerName, app.appName); // show spinner and wait for the requests to finish yield interaction_1.out.progress("Loading distribution group information...", Promise.all([distributionGroupMembersRequestResponse, basicReleasesDetailsRequestResponse].map((p) => p.catch(() => Promise.resolve())))); let distributionGroupMembers; try { debug(`Getting users of distribution group ${this.distributionGroup}`); distributionGroupMembers = yield distributionGroupMembersRequestResponse; } catch (error) { if (error === 404) { throw commandline_1.failure(commandline_1.ErrorCodes.InvalidParameter, `distribution group ${this.distributionGroup} was not found`); } else { debug(`Failed to get list of distribution group members - ${util_1.inspect(error)}`); throw commandline_1.failure(commandline_1.ErrorCodes.Exception, "failed to retrieve list of distribution group users"); } } let basicReleasesDetails; try { debug(`Getting releases details for distribution group ${this.distributionGroup}`); basicReleasesDetails = yield basicReleasesDetailsRequestResponse; } catch (error) { debug(`Failed to get releases for the distribution group - ${util_1.inspect(error)}`); throw commandline_1.failure(commandline_1.ErrorCodes.Exception, "failed to retrieve releases details for the distribution group"); } interaction_1.out.reportTitledGroupsOfTables([ { reportFormat: [ ["Display Name", "displayName"], ["Email", "email"], ], tables: distributionGroupMembers, title: "Users:", }, { reportFormat: [ ["ID", "id"], ["Short Version", "shortVersion"], ["Version", "version"], ["Uploaded At", "uploadedAt", interaction_1.out.report.asDate], ], tables: basicReleasesDetails, title: "Releases:", }, ]); return commandline_1.success(); }); } }; __decorate([ commandline_1.help("Distribution group name"), commandline_1.shortName("g"), commandline_1.longName("group"), commandline_1.required, commandline_1.hasArg ], ShowDistributionGroupCommand.prototype, "distributionGroup", void 0); ShowDistributionGroupCommand = __decorate([ commandline_1.help("Shows information about the distribution group") ], ShowDistributionGroupCommand); exports.default = ShowDistributionGroupCommand;