diff --git a/src/app/integrations/qbo/qbo-onboarding/qbo-onboarding-connector/qbo-onboarding-connector.component.ts b/src/app/integrations/qbo/qbo-onboarding/qbo-onboarding-connector/qbo-onboarding-connector.component.ts index fd5be0de8..772dc2c36 100644 --- a/src/app/integrations/qbo/qbo-onboarding/qbo-onboarding-connector/qbo-onboarding-connector.component.ts +++ b/src/app/integrations/qbo/qbo-onboarding/qbo-onboarding-connector/qbo-onboarding-connector.component.ts @@ -14,6 +14,7 @@ import { QBOOnboardingModel } from 'src/app/core/models/qbo/qbo-configuration/qb import { CloneSettingService } from 'src/app/core/services/common/clone-setting.service'; import { HelperService } from 'src/app/core/services/common/helper.service'; import { IntegrationsToastService } from 'src/app/core/services/common/integrations-toast.service'; +import { StorageService } from 'src/app/core/services/common/storage.service'; import { WorkspaceService } from 'src/app/core/services/common/workspace.service'; import { UserService } from 'src/app/core/services/misc/user.service'; import { QboConnectorService } from 'src/app/core/services/qbo/qbo-configuration/qbo-connector.service'; @@ -82,7 +83,8 @@ export class QboOnboardingConnectorComponent implements OnInit, OnDestroy { private router: Router, private toastService: IntegrationsToastService, private userService: UserService, - private workspaceService: WorkspaceService + private workspaceService: WorkspaceService, + private storageService: StorageService ) { } connectQbo(): void { @@ -182,11 +184,16 @@ export class QboOnboardingConnectorComponent implements OnInit, OnDestroy { const payload: QBOConnectorPost = QBOConnectorModel.constructPayload(code, realmId); this.qboConnectorService.connectQBO(payload).subscribe((qboCredential: QBOCredential) => { - this.qboHelperService.refreshQBODimensions().subscribe(() => { - this.handlePostQBOConnection(qboCredential); - }, () => { - this.handlePostQBOConnection(qboCredential); + this.qboHelperService.refreshQBODimensions().subscribe(); + + const fyleOrgId = this.storageService.get('org').fyle_org_id; + this.helperService.pollDimensionsSyncStatus({ + onPollingComplete: () => { + this.handlePostQBOConnection(qboCredential); + }, + getWorkspacesObserver: () => this.workspaceService.getWorkspace(fyleOrgId) }); + }, (error) => { const errorMessage = 'message' in error.error ? error.error.message : 'Failed to connect to QuickBooks Online. Please try again'; if (errorMessage === 'Please choose the correct QuickBooks Online account') { diff --git a/src/app/integrations/xero/xero-onboarding/xero-onboarding-connector/xero-onboarding-connector.component.ts b/src/app/integrations/xero/xero-onboarding/xero-onboarding-connector/xero-onboarding-connector.component.ts index 76af925a4..8379cb492 100644 --- a/src/app/integrations/xero/xero-onboarding/xero-onboarding-connector/xero-onboarding-connector.component.ts +++ b/src/app/integrations/xero/xero-onboarding/xero-onboarding-connector/xero-onboarding-connector.component.ts @@ -15,6 +15,7 @@ import { XeroOnboardingModel } from 'src/app/core/models/xero/xero-configuration import { CloneSettingService } from 'src/app/core/services/common/clone-setting.service'; import { HelperService } from 'src/app/core/services/common/helper.service'; import { IntegrationsToastService } from 'src/app/core/services/common/integrations-toast.service'; +import { StorageService } from 'src/app/core/services/common/storage.service'; import { WorkspaceService } from 'src/app/core/services/common/workspace.service'; import { UserService } from 'src/app/core/services/misc/user.service'; import { XeroConnectorService } from 'src/app/core/services/xero/xero-configuration/xero-connector.service'; @@ -90,7 +91,8 @@ export class XeroOnboardingConnectorComponent implements OnInit { private router: Router, private toastService: IntegrationsToastService, private cloneSettingService: CloneSettingService, - private xeroHelperService: XeroHelperService + private xeroHelperService: XeroHelperService, + private storageService: StorageService ) { } private checkCloneSettingsAvailablity(): void { @@ -193,15 +195,22 @@ export class XeroOnboardingConnectorComponent implements OnInit { this.xeroCompanyName = this.xeroTenantselected.value; const tenantMappingPayload: TenantMappingPost = TenantMappingModel.constructPayload(this.xeroTenantselected); this.xeroConnectorService.postTenantMapping(tenantMappingPayload).subscribe((response:TenantMapping) => { - this.xeroHelperService.refreshXeroDimensions().subscribe(() => { - this.workspaceService.setOnboardingState(XeroOnboardingState.EXPORT_SETTINGS); - this.xeroConnectionInProgress = false; - this.xeroTokenExpired = false; - this.isXeroConnected = true; - this.xeroCompanyName = response.tenant_name; - this.showOrHideDisconnectXero(); - this.checkCloneSettingsAvailablity(); + this.xeroHelperService.refreshXeroDimensions().subscribe(); + + const fyleOrgId = this.storageService.get('org').fyle_org_id; + this.helperService.pollDimensionsSyncStatus({ + onPollingComplete: () => { + this.workspaceService.setOnboardingState(XeroOnboardingState.EXPORT_SETTINGS); + this.xeroConnectionInProgress = false; + this.xeroTokenExpired = false; + this.isXeroConnected = true; + this.xeroCompanyName = response.tenant_name; + this.showOrHideDisconnectXero(); + this.checkCloneSettingsAvailablity(); + }, + getWorkspacesObserver: () => this.workspaceService.getWorkspace(fyleOrgId) }); + }); } else { return;