diff --git a/redisinsight/api/src/modules/cloud/database/cloud-database.analytics.ts b/redisinsight/api/src/modules/cloud/database/cloud-database.analytics.ts index dbe8be196a..51b01a3087 100644 --- a/redisinsight/api/src/modules/cloud/database/cloud-database.analytics.ts +++ b/redisinsight/api/src/modules/cloud/database/cloud-database.analytics.ts @@ -2,6 +2,10 @@ import { HttpException, Injectable } from '@nestjs/common'; import { TelemetryBaseService } from 'src/modules/analytics/telemetry.base.service'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { TelemetryEvents } from 'src/constants'; +import { CloudSubscriptionCapiService } from '../subscription/cloud-subscription.capi.service'; +import { CloudSubscriptionType } from '../subscription/models'; +import { CloudCapiAuthDto } from '../common/dto'; +import { catchAclError } from 'src/utils'; @Injectable() export class CloudDatabaseAnalytics extends TelemetryBaseService { @@ -13,7 +17,30 @@ export class CloudDatabaseAnalytics extends TelemetryBaseService { this.sendEvent(TelemetryEvents.CloudFreeDatabaseCreated, eventData); } - sendCloudFreeDatabaseFailed(exception: HttpException, eventData: object = {}) { - this.sendFailedEvent(TelemetryEvents.CloudFreeDatabaseFailed, exception, eventData); + async sendCloudFreeDatabaseFailed( + exception: HttpException, + eventData: object = {}, + cloudSubscriptionCapiService: CloudSubscriptionCapiService, + data: { planId: number, capiCredentials: CloudCapiAuthDto }, + ) { + try { + const fixedPlans = await cloudSubscriptionCapiService.getSubscriptionsPlans( + data.capiCredentials, + CloudSubscriptionType.Fixed, + ); + + const selectedPlan = CloudSubscriptionCapiService.findFreePlanById(fixedPlans, data.planId); + + this.sendFailedEvent( + TelemetryEvents.CloudFreeDatabaseFailed, + exception, + { + region: selectedPlan?.region || '', + provider: selectedPlan?.provider || '', + ...eventData, + }, + ); + } catch (error) { + } } } diff --git a/redisinsight/api/src/modules/cloud/job/jobs/create-free-database.cloud-job.ts b/redisinsight/api/src/modules/cloud/job/jobs/create-free-database.cloud-job.ts index e6829c4724..06e41715f9 100644 --- a/redisinsight/api/src/modules/cloud/job/jobs/create-free-database.cloud-job.ts +++ b/redisinsight/api/src/modules/cloud/job/jobs/create-free-database.cloud-job.ts @@ -173,10 +173,15 @@ export class CreateFreeDatabaseCloudJob extends CloudJob { return database; } catch (e) { - this.dependencies.cloudDatabaseAnalytics.sendCloudFreeDatabaseFailed(e, { - region: freeSubscription?.region || '', - provider: freeSubscription?.provider || '', - }); + this.dependencies.cloudDatabaseAnalytics.sendCloudFreeDatabaseFailed( + e, + { + region: freeSubscription?.region || '', + provider: freeSubscription?.provider || '', + }, + this.dependencies.cloudSubscriptionCapiService, + this.data, + ); throw e; }