From d753b9724160cd16222acfde475340d156ac98de Mon Sep 17 00:00:00 2001 From: Olivier Lamothe Date: Tue, 13 Jul 2021 10:54:31 -0400 Subject: [PATCH] feat(analytics): add analytics hook on org:config commands (#336) https://coveord.atlassian.net/browse/CDX-455 --- packages/cli/src/commands/org/config/monitor.ts | 14 ++++++++++++++ packages/cli/src/commands/org/config/preview.ts | 15 +++++++++++++++ packages/cli/src/commands/org/config/push.ts | 15 +++++++++++++++ 3 files changed, 44 insertions(+) diff --git a/packages/cli/src/commands/org/config/monitor.ts b/packages/cli/src/commands/org/config/monitor.ts index b2b7eea4aa..79e53cb041 100644 --- a/packages/cli/src/commands/org/config/monitor.ts +++ b/packages/cli/src/commands/org/config/monitor.ts @@ -1,6 +1,10 @@ import {ResourceSnapshotsReportModel} from '@coveord/platform-client'; import {flags, Command} from '@oclif/command'; import {cli} from 'cli-ux'; +import { + buildAnalyticsFailureHook, + buildAnalyticsSuccessHook, +} from '../../../hooks/analytics/analytics'; import {Config} from '../../../lib/config/config'; import { IsAuthenticated, @@ -41,6 +45,16 @@ export default class Monitor extends Command { this.printHeader(snapshot.id); await this.monitorSnapshot(snapshot); + this.config.runHook('analytics', buildAnalyticsSuccessHook(this, flags)); + } + + public async catch(err?: Error) { + const {flags} = this.parse(Monitor); + await this.config.runHook( + 'analytics', + buildAnalyticsFailureHook(this, flags, err) + ); + throw err; } private async monitorSnapshot(snapshot: Snapshot) { diff --git a/packages/cli/src/commands/org/config/preview.ts b/packages/cli/src/commands/org/config/preview.ts index 68b337bc09..9677e11b85 100644 --- a/packages/cli/src/commands/org/config/preview.ts +++ b/packages/cli/src/commands/org/config/preview.ts @@ -1,6 +1,10 @@ import {DryRunOptions} from '@coveord/platform-client'; import {Command, flags} from '@oclif/command'; import {cwd} from 'process'; +import { + buildAnalyticsFailureHook, + buildAnalyticsSuccessHook, +} from '../../../hooks/analytics/analytics'; import {Config} from '../../../lib/config/config'; import { IsAuthenticated, @@ -57,6 +61,17 @@ export default class Preview extends Command { } project.deleteTemporaryZipFile(); + + this.config.runHook('analytics', buildAnalyticsSuccessHook(this, flags)); + } + + public async catch(err?: Error) { + const {flags} = this.parse(Preview); + await this.config.runHook( + 'analytics', + buildAnalyticsFailureHook(this, flags, err) + ); + throw err; } private async handleReportWithErrors(snapshot: Snapshot) { diff --git a/packages/cli/src/commands/org/config/push.ts b/packages/cli/src/commands/org/config/push.ts index 6599d5903f..6d55967f26 100644 --- a/packages/cli/src/commands/org/config/push.ts +++ b/packages/cli/src/commands/org/config/push.ts @@ -16,6 +16,10 @@ import { import {Config} from '../../../lib/config/config'; import {DryRunOptions} from '@coveord/platform-client'; import {cwd} from 'process'; +import { + buildAnalyticsFailureHook, + buildAnalyticsSuccessHook, +} from '../../../hooks/analytics/analytics'; export default class Push extends Command { public static description = @@ -71,6 +75,17 @@ export default class Push extends Command { } project.deleteTemporaryZipFile(); + + this.config.runHook('analytics', buildAnalyticsSuccessHook(this, flags)); + } + + public async catch(err?: Error) { + const {flags} = this.parse(Push); + await this.config.runHook( + 'analytics', + buildAnalyticsFailureHook(this, flags, err) + ); + throw err; } private async handleValidReport(