From c7088460180e6cc01104c5de28232a18305a83f6 Mon Sep 17 00:00:00 2001 From: Richard Hua Date: Thu, 18 Feb 2016 17:25:33 -0800 Subject: [PATCH 1/2] Rely on server for generation of qualified app names --- cli/script/command-executor.ts | 51 ++-------------------------------- 1 file changed, 3 insertions(+), 48 deletions(-) diff --git a/cli/script/command-executor.ts b/cli/script/command-executor.ts index 89c1465e..e2608a43 100644 --- a/cli/script/command-executor.ts +++ b/cli/script/command-executor.ts @@ -484,27 +484,6 @@ function generateRandomFilename(length: number): string { return filename; } -function isCurrentAccountOwner(map: CollaboratorMap): boolean { - if (map) { - var ownerEmail: string = getOwnerEmail(map); - return ownerEmail && map[ownerEmail].isCurrentAccount; - } - - return false; -} - -function getOwnerEmail(map: CollaboratorMap): string { - if (map) { - for (var key of Object.keys(map)) { - if (map[key].permission === Permissions.Owner) { - return key; - } - } - } - - return null; -} - function getTotalActiveFromDeploymentMetrics(metrics: DeploymentMetrics): number { var totalActive = 0; Object.keys(metrics).forEach((label: string) => { @@ -614,35 +593,11 @@ function formatDate(unixOffset: number): string { } } -function getAppDisplayName(app: App, appNameToCountMap: NameToCountMap): string { - if (appNameToCountMap && appNameToCountMap[app.name] > 1) { - var isCurrentUserOwner: boolean = isCurrentAccountOwner(app.collaborators); - return isCurrentUserOwner ? app.name : getOwnerEmail(app.collaborators) + "/" + app.name; - } else { - return app.name; - } -} - -function getNameToCountMap(apps: App[]): NameToCountMap { - var nameToCountMap: NameToCountMap = {}; - apps.forEach((app: App) => { - var ownerEmail: string = getOwnerEmail(app.collaborators); - if (!nameToCountMap[app.name]) { - nameToCountMap[app.name] = 1; - } else { - nameToCountMap[app.name] = nameToCountMap[app.name] + 1; - } - }); - - return nameToCountMap; -} - function printAppList(format: string, apps: App[], deploymentLists: string[][]): void { - var appNameToCountMap: NameToCountMap = getNameToCountMap(apps); - if (format === "json") { var dataSource: any[] = apps.map((app: App, index: number) => { - return { "name": getAppDisplayName(app, appNameToCountMap), "deployments": deploymentLists[index] }; + var augmentedApp: any = app; + augmentedApp.deployments = deploymentLists[index]; }); printJson(dataSource); @@ -650,7 +605,7 @@ function printAppList(format: string, apps: App[], deploymentLists: string[][]): var headers = ["Name", "Deployments"]; printTable(headers, (dataSource: any[]): void => { apps.forEach((app: App, index: number): void => { - var row = [getAppDisplayName(app, appNameToCountMap), wordwrap(50)(deploymentLists[index].join(", "))]; + var row = [app.name, wordwrap(50)(deploymentLists[index].join(", "))]; dataSource.push(row); }); }); From 3387707e1b41787205701c3b604c9304a2e9b1d0 Mon Sep 17 00:00:00 2001 From: Richard Hua Date: Fri, 19 Feb 2016 17:33:20 -0800 Subject: [PATCH 2/2] Fix JSON output of app list command --- cli/script/command-executor.ts | 1 + cli/test/cli.ts | 22 ++++++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/cli/script/command-executor.ts b/cli/script/command-executor.ts index e2608a43..7a698f4d 100644 --- a/cli/script/command-executor.ts +++ b/cli/script/command-executor.ts @@ -598,6 +598,7 @@ function printAppList(format: string, apps: App[], deploymentLists: string[][]): var dataSource: any[] = apps.map((app: App, index: number) => { var augmentedApp: any = app; augmentedApp.deployments = deploymentLists[index]; + return augmentedApp; }); printJson(dataSource); diff --git a/cli/test/cli.ts b/cli/test/cli.ts index 50dd2cdb..78b8f3ac 100644 --- a/cli/test/cli.ts +++ b/cli/test/cli.ts @@ -329,8 +329,26 @@ describe("CLI", () => { var actual: string = log.args[0][0]; var expected = [ - { name: "a", deployments: ["Production", "Staging"]}, - { name: "b", deployments: ["Production", "Staging"]} + { + name: "a", + collaborators: { + "a@a.com": { + permission: "Owner", + isCurrentAccount: true + } + }, + deployments: ["Production", "Staging"] + }, + { + name: "b", + collaborators: { + "a@a.com": { + permission: "Owner", + isCurrentAccount: true + } + }, + deployments: ["Production", "Staging"] + } ]; assertJsonDescribesObject(actual, expected);