@@ -3,7 +3,7 @@ import { QbdDirectSharedModule } from '../../qbd-direct-shared/qbd-direct-shared
33import { SharedModule } from 'src/app/shared/shared.module' ;
44import { brandingConfig , brandingContent , brandingKbArticles } from 'src/app/branding/branding-config' ;
55import { BrandingConfiguration } from 'src/app/core/models/branding/branding-configuration.model' ;
6- import { AppName , ConfigurationCta , QBDConnectionStatus , QbdDirectOnboardingState , QBDOnboardingState , ToastSeverity } from 'src/app/core/models/enum/enum.model' ;
6+ import { AppName , ConfigurationCta , Page , ProgressPhase , QBDConnectionStatus , QbdDirectOnboardingState , QbdDirectUpdateEvent , QBDOnboardingState , ToastSeverity , TrackingApp } from 'src/app/core/models/enum/enum.model' ;
77import { OnboardingStepper } from 'src/app/core/models/misc/onboarding-stepper.model' ;
88import { QbdDirectOnboardingModel } from 'src/app/core/models/qbd-direct/qbd-direct-configuration/qbd-direct-onboarding.model' ;
99import { Router } from '@angular/router' ;
@@ -18,6 +18,7 @@ import { interval, switchMap, from, takeWhile } from 'rxjs';
1818import { QbdDirectTaskResponse } from 'src/app/core/models/qbd-direct/db/qbd-direct-task-log.model' ;
1919import { IntegrationsToastService } from 'src/app/core/services/common/integrations-toast.service' ;
2020import { CheckBoxUpdate } from 'src/app/core/models/common/helper.model' ;
21+ import { TrackingService } from 'src/app/core/services/integration/tracking.service' ;
2122
2223@Component ( {
2324 selector : 'app-qbd-direct-onboarding-connector' ,
@@ -74,12 +75,17 @@ export class QbdDirectOnboardingConnectorComponent implements OnInit {
7475
7576 appName : string = AppName . QBD_DIRECT ;
7677
78+ sessionStartTime : Date = new Date ( ) ;
79+
80+ workspace : QbdDirectWorkspace ;
81+
7782 constructor (
7883 private router : Router ,
7984 private workspaceService : WorkspaceService ,
8085 private storageService : StorageService ,
8186 private qbdDirectConnectorService : QbdDirectConnectorService ,
82- private toastService : IntegrationsToastService
87+ private toastService : IntegrationsToastService ,
88+ private trackingService : TrackingService
8389 ) { }
8490
8591 triggerDownload ( filePath : string ) {
@@ -112,6 +118,22 @@ export class QbdDirectOnboardingConnectorComponent implements OnInit {
112118 proceedToConnection ( ) {
113119 this . isDownloadfileLoading = true ;
114120 this . workspaceService . updateWorkspaceOnboardingState ( { onboarding_state : QbdDirectOnboardingState . PENDING_QWC_UPLOAD } ) . subscribe ( ( workspaceResponse : QbdDirectWorkspace ) => {
121+ this . workspace = workspaceResponse ;
122+ if ( this . workspaceService . getOnboardingState ( ) === QbdDirectOnboardingState . CONNECTION ) {
123+ this . trackingService . integrationsOnboardingCompletion ( TrackingApp . QBD_DIRECT , QbdDirectOnboardingState . CONNECTION , 2 ) ;
124+ } else {
125+ const oldWorkspaceResponse = workspaceResponse ;
126+ oldWorkspaceResponse . onboarding_state = QbdDirectOnboardingState . CONNECTION ;
127+ this . trackingService . onUpdateEvent (
128+ TrackingApp . QBD_DIRECT ,
129+ QbdDirectUpdateEvent . CONNECT_QBD_DIRECT ,
130+ {
131+ phase : ProgressPhase . ONBOARDING ,
132+ oldState : oldWorkspaceResponse ,
133+ newState : workspaceResponse
134+ }
135+ ) ;
136+ }
115137 this . isDownloadStepCompleted = true ;
116138 this . isDownloadfileLoading = false ;
117139 } ) ;
@@ -189,6 +211,21 @@ export class QbdDirectOnboardingConnectorComponent implements OnInit {
189211 } else {
190212 this . handleDataSyncState ( workspaceResponse [ 0 ] ) ;
191213 }
214+ if ( workspaceResponse [ 0 ] . onboarding_state in [ QbdDirectOnboardingState . DESTINATION_SYNC_IN_PROGRESS , QbdDirectOnboardingState . DESTINATION_SYNC_COMPLETE ] ) {
215+ this . trackingService . integrationsOnboardingCompletion ( TrackingApp . QBD_DIRECT , QbdDirectOnboardingState . PENDING_QWC_UPLOAD , 2 ) ;
216+ } else {
217+ const oldWorkspaceResponse = this . workspace ;
218+ oldWorkspaceResponse . onboarding_state = QbdDirectOnboardingState . PENDING_QWC_UPLOAD ;
219+ this . trackingService . onUpdateEvent (
220+ TrackingApp . QBD_DIRECT ,
221+ QbdDirectUpdateEvent . PENDING_QWC_UPLOAD_QBD_DIRECT ,
222+ {
223+ phase : ProgressPhase . ONBOARDING ,
224+ oldState : oldWorkspaceResponse ,
225+ newState : workspaceResponse [ 0 ]
226+ }
227+ ) ;
228+ }
192229 } ) ;
193230 }
194231
@@ -216,6 +253,22 @@ export class QbdDirectOnboardingConnectorComponent implements OnInit {
216253 proceedToExportSetting ( ) {
217254 this . isLoading = true ;
218255 this . workspaceService . updateWorkspaceOnboardingState ( { onboarding_state : QbdDirectOnboardingState . EXPORT_SETTINGS } ) . subscribe ( ( workspaceResponse : QbdDirectWorkspace ) => {
256+ this . trackingService . trackTimeSpent ( TrackingApp . QBD_DIRECT , Page . CONNECT_QBD_DIRECT , this . sessionStartTime ) ;
257+ if ( this . workspaceService . getOnboardingState ( ) === QbdDirectOnboardingState . DESTINATION_SYNC_COMPLETE ) {
258+ this . trackingService . integrationsOnboardingCompletion ( TrackingApp . QBD_DIRECT , QbdDirectOnboardingState . DESTINATION_SYNC_COMPLETE , 2 ) ;
259+ } else {
260+ const oldWorkspaceResponse = workspaceResponse ;
261+ oldWorkspaceResponse . onboarding_state = QbdDirectOnboardingState . DESTINATION_SYNC_COMPLETE ;
262+ this . trackingService . onUpdateEvent (
263+ TrackingApp . QBD_DIRECT ,
264+ QbdDirectUpdateEvent . DESTINATION_SYNC_COMPLETE_QBD_DIRECT ,
265+ {
266+ phase : ProgressPhase . ONBOARDING ,
267+ oldState : oldWorkspaceResponse ,
268+ newState : workspaceResponse
269+ }
270+ ) ;
271+ }
219272 this . workspaceService . setOnboardingState ( workspaceResponse . onboarding_state ) ;
220273 this . router . navigate ( [ `/integrations/qbd_direct/onboarding/export_settings` ] ) ;
221274 this . isLoading = false ;
0 commit comments