diff --git a/packages/cli/src/commands/ui/create/angular.ts b/packages/cli/src/commands/ui/create/angular.ts index 42e4845476..f81b2722a1 100644 --- a/packages/cli/src/commands/ui/create/angular.ts +++ b/packages/cli/src/commands/ui/create/angular.ts @@ -5,6 +5,7 @@ import {Storage} from '../../../lib/oauth/storage'; import {Config} from '../../../lib/config/config'; import {spawnProcess} from '../../../lib/utils/process'; import {buildAnalyticsFailureHook} from '../../../hooks/analytics/analytics'; +import {AuthenticatedClient} from '../../../lib/platform/authenticatedClient'; export default class Angular extends Command { static description = @@ -42,6 +43,7 @@ export default class Angular extends Command { private async addCoveoToProject(applicationName: string, defaults: boolean) { const cfg = await this.configuration.get(); const storage = await this.storage.get(); + const {providerUsername} = await this.getUserInfo(); const cliArgs = [ 'add', @@ -52,9 +54,8 @@ export default class Angular extends Command { storage.accessToken!, '--platform-url', platformUrl({environment: cfg.environment}), - // TODO: CDX-91 Extract user email from oauth flow '--user', - 'foo@acme.com', + providerUsername, ]; if (defaults) { @@ -84,4 +85,12 @@ export default class Angular extends Command { private get storage() { return new Storage(); } + + private async getUserInfo() { + const authenticatedClient = new AuthenticatedClient(); + const platformClient = await authenticatedClient.getClient(); + await platformClient.initialize(); + + return await platformClient.user.get(); + } } diff --git a/packages/cli/src/commands/ui/create/react.ts b/packages/cli/src/commands/ui/create/react.ts index 069187d9d1..4902b5cd37 100644 --- a/packages/cli/src/commands/ui/create/react.ts +++ b/packages/cli/src/commands/ui/create/react.ts @@ -8,6 +8,7 @@ import {platformUrl} from '../../../lib/platform/environment'; import {spawnProcess} from '../../../lib/utils/process'; import {Storage} from '../../../lib/oauth/storage'; import AuthenticationRequired from '../../../lib/decorators/authenticationRequired'; +import {AuthenticatedClient} from '../../../lib/platform/authenticatedClient'; export default class React extends Command { static description = @@ -49,6 +50,7 @@ export default class React extends Command { private async setupEnvironmentVariables(name: string) { const cfg = await this.configuration.get(); const storage = await this.storage.get(); + const {providerUsername} = await this.getUserInfo(); return spawnProcess( 'npm', @@ -62,9 +64,8 @@ export default class React extends Command { storage.accessToken!, '--platformUrl', platformUrl({environment: cfg.environment}), - // TODO: CDX-91 Extract user email from oauth flow '--user', - 'foo@acme.com', + providerUsername, ], { cwd: name, @@ -88,4 +89,12 @@ export default class React extends Command { private get storage() { return new Storage(); } + + private async getUserInfo() { + const authenticatedClient = new AuthenticatedClient(); + const platformClient = await authenticatedClient.getClient(); + await platformClient.initialize(); + + return await platformClient.user.get(); + } } diff --git a/packages/cli/src/commands/ui/create/vue.ts b/packages/cli/src/commands/ui/create/vue.ts index 6ada6a66a0..b4b82b0fe4 100644 --- a/packages/cli/src/commands/ui/create/vue.ts +++ b/packages/cli/src/commands/ui/create/vue.ts @@ -6,6 +6,7 @@ import { } from '../../../hooks/analytics/analytics'; import {Config} from '../../../lib/config/config'; import AuthenticationRequired from '../../../lib/decorators/authenticationRequired'; +import {AuthenticatedClient} from '../../../lib/platform/authenticatedClient'; import {Storage} from '../../../lib/oauth/storage'; import {platformUrl} from '../../../lib/platform/environment'; import {spawnProcess} from '../../../lib/utils/process'; @@ -68,6 +69,7 @@ export default class Vue extends Command { private async invokePlugin(applicationName: string) { const cfg = await this.configuration.get(); const storage = await this.storage.get(); + const {providerUsername} = await this.getUserInfo(); const cliArgs = [ 'invoke', @@ -78,9 +80,8 @@ export default class Vue extends Command { storage.accessToken!, '--platformUrl', platformUrl({environment: cfg.environment}), - // TODO: CDX-91 Extract user email from oauth flow '--user', - 'foo@acme.com', + providerUsername, ]; return this.runVueCliCommand(cliArgs, { @@ -111,4 +112,12 @@ export default class Vue extends Command { private get storage() { return new Storage(); } + + private async getUserInfo() { + const authenticatedClient = new AuthenticatedClient(); + const platformClient = await authenticatedClient.getClient(); + await platformClient.initialize(); + + return await platformClient.user.get(); + } }