Skip to content

Commit bb87f17

Browse files
committed
adding login required and auth code in qbo xero intacct and netsuite
1 parent 27639af commit bb87f17

File tree

4 files changed

+83
-12
lines changed

4 files changed

+83
-12
lines changed

src/app/integrations/intacct/intacct.component.ts

+21-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Component, Inject, OnInit } from '@angular/core';
2-
import { NavigationEnd, Router } from '@angular/router';
2+
import { NavigationEnd, Router, ActivatedRoute } from '@angular/router';
33
import { MinimalUser } from 'src/app/core/models/db/user.model';
44
import { AppName, AppUrl, IntacctOnboardingState } from 'src/app/core/models/enum/enum.model';
55
import { IntacctWorkspace } from 'src/app/core/models/intacct/db/workspaces.model';
@@ -9,6 +9,7 @@ import { WindowService } from 'src/app/core/services/common/window.service';
99
import { AppcuesService } from 'src/app/core/services/integration/appcues.service';
1010
import { UserService } from 'src/app/core/services/misc/user.service';
1111
import { SiWorkspaceService } from 'src/app/core/services/si/si-core/si-workspace.service';
12+
import { SiAuthService } from 'src/app/core/services/si/si-core/si-auth.service';
1213

1314
@Component({
1415
selector: 'app-intacct',
@@ -29,10 +30,12 @@ export class IntacctComponent implements OnInit {
2930
private appcuesService: AppcuesService,
3031
private helperService: HelperService,
3132
private router: Router,
33+
private route: ActivatedRoute,
3234
private storageService: StorageService,
3335
private userService: UserService,
3436
private windowService: WindowService,
35-
private workspaceService: SiWorkspaceService
37+
private workspaceService: SiWorkspaceService,
38+
private siAuthService: SiAuthService
3639
) {
3740
this.windowReference = this.windowService.nativeWindow;
3841
}
@@ -77,13 +80,28 @@ export class IntacctComponent implements OnInit {
7780
);
7881
}
7982

83+
private handleAuthParameters(): void {
84+
this.route.queryParams.subscribe(params => {
85+
const loginRequired = params.login_required === 'true';
86+
const authCode = params.authCode;
87+
88+
if (loginRequired && authCode) {
89+
this.siAuthService.loginWithAuthCode(authCode).subscribe(
90+
() => this.getOrCreateWorkspace()
91+
);
92+
} else {
93+
this.getOrCreateWorkspace();
94+
}
95+
});
96+
}
97+
8098
ngOnInit(): void {
8199
this.router.events.subscribe((event) => {
82100
if (event instanceof NavigationEnd) {
83101
(window as any).Appcues && (window as any).Appcues.page();
84102
}
85103
});
86-
this.getOrCreateWorkspace();
104+
this.handleAuthParameters();
87105
}
88106

89107
}

src/app/integrations/netsuite/netsuite.component.ts

+21-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Component, Inject, OnInit } from '@angular/core';
2-
import { Router } from '@angular/router';
2+
import { Router, ActivatedRoute } from '@angular/router';
33
import { MinimalUser } from 'src/app/core/models/db/user.model';
44
import { NetsuiteOnboardingState } from 'src/app/core/models/enum/enum.model';
55
import { NetsuiteWorkspace } from 'src/app/core/models/netsuite/db/netsuite-workspace.model';
@@ -8,7 +8,7 @@ import { StorageService } from 'src/app/core/services/common/storage.service';
88
import { WindowService } from 'src/app/core/services/common/window.service';
99
import { WorkspaceService } from 'src/app/core/services/common/workspace.service';
1010
import { NetsuiteHelperService } from 'src/app/core/services/netsuite/netsuite-core/netsuite-helper.service';
11-
11+
import { NetsuiteAuthService } from 'src/app/core/services/netsuite/netsuite-core/netsuite-auth.service';
1212

1313
@Component({
1414
selector: 'app-netsuite',
@@ -29,10 +29,12 @@ export class NetsuiteComponent implements OnInit {
2929
constructor(
3030
private netsuiteHelperService: NetsuiteHelperService,
3131
private router: Router,
32+
private route: ActivatedRoute,
3233
private storageService: StorageService,
3334
private userService: IntegrationsUserService,
3435
private workspaceService: WorkspaceService,
35-
private windowService: WindowService
36+
private windowService: WindowService,
37+
private nsAuthService: NetsuiteAuthService
3638
) {
3739
this.windowReference = this.windowService.nativeWindow;
3840
}
@@ -77,7 +79,22 @@ export class NetsuiteComponent implements OnInit {
7779
);
7880
}
7981

82+
private handleAuthParameters(): void {
83+
this.route.queryParams.subscribe(params => {
84+
const loginRequired = params.login_required === 'true';
85+
const authCode = params.authCode;
86+
87+
if (loginRequired && authCode) {
88+
this.nsAuthService.loginWithAuthCode(authCode).subscribe(
89+
() => this.setupWorkspace()
90+
);
91+
} else {
92+
this.setupWorkspace();
93+
}
94+
});
95+
}
96+
8097
ngOnInit(): void {
81-
this.setupWorkspace();
98+
this.handleAuthParameters();
8299
}
83100
}

src/app/integrations/qbo/qbo.component.ts

+20-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Component, Inject, OnInit } from '@angular/core';
2-
import { Router } from '@angular/router';
2+
import { Router, ActivatedRoute } from '@angular/router';
33
import { MinimalUser } from 'src/app/core/models/db/user.model';
44
import { AppUrl, QBOOnboardingState } from 'src/app/core/models/enum/enum.model';
55
import { QBOWorkspace } from 'src/app/core/models/qbo/db/qbo-workspace.model';
@@ -9,6 +9,7 @@ import { StorageService } from 'src/app/core/services/common/storage.service';
99
import { WindowService } from 'src/app/core/services/common/window.service';
1010
import { WorkspaceService } from 'src/app/core/services/common/workspace.service';
1111
import { QboHelperService } from 'src/app/core/services/qbo/qbo-core/qbo-helper.service';
12+
import { QboAuthService } from 'src/app/core/services/qbo/qbo-core/qbo-auth.service';
1213

1314
@Component({
1415
selector: 'app-qbo',
@@ -29,6 +30,8 @@ export class QboComponent implements OnInit {
2930
private helperService: HelperService,
3031
private qboHelperService: QboHelperService,
3132
private router: Router,
33+
private route: ActivatedRoute,
34+
private qboAuthService: QboAuthService,
3235
private storageService: StorageService,
3336
private userService: IntegrationsUserService,
3437
private workspaceService: WorkspaceService,
@@ -77,8 +80,23 @@ export class QboComponent implements OnInit {
7780
);
7881
}
7982

83+
private handleAuthParameters(): void {
84+
this.route.queryParams.subscribe(params => {
85+
const loginRequired = params.login_required === 'true';
86+
const authCode = params.authCode;
87+
88+
if (loginRequired && authCode) {
89+
this.qboAuthService.loginWithAuthCode(authCode).subscribe(
90+
() => this.setupWorkspace()
91+
);
92+
} else {
93+
this.setupWorkspace();
94+
}
95+
});
96+
}
97+
8098
ngOnInit(): void {
81-
this.setupWorkspace();
99+
this.handleAuthParameters();
82100
}
83101

84102
}

src/app/integrations/xero/xero.component.ts

+21-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Component, Inject, OnInit } from '@angular/core';
2-
import { Router } from '@angular/router';
2+
import { Router, ActivatedRoute } from '@angular/router';
33
import { MinimalUser } from 'src/app/core/models/db/user.model';
44
import { AppUrl, XeroOnboardingState } from 'src/app/core/models/enum/enum.model';
55
import { XeroWorkspace } from 'src/app/core/models/xero/db/xero-workspace.model';
@@ -9,6 +9,7 @@ import { WindowService } from 'src/app/core/services/common/window.service';
99
import { WorkspaceService } from 'src/app/core/services/common/workspace.service';
1010
import { UserService } from 'src/app/core/services/misc/user.service';
1111
import { XeroHelperService } from 'src/app/core/services/xero/xero-core/xero-helper.service';
12+
import { XeroAuthService } from 'src/app/core/services/xero/xero-core/xero-auth.service';
1213

1314
@Component({
1415
selector: 'app-xero',
@@ -27,12 +28,14 @@ export class XeroComponent implements OnInit {
2728

2829
constructor(
2930
private router: Router,
31+
private route: ActivatedRoute,
3032
private storageService: StorageService,
3133
private xeroHelperService: XeroHelperService,
3234
private userService: UserService,
3335
private windowService: WindowService,
3436
private workspaceService: WorkspaceService,
35-
private helperService: HelperService
37+
private helperService: HelperService,
38+
private xeroAuthService: XeroAuthService
3639
) {
3740
this.windowReference = this.windowService.nativeWindow;
3841
}
@@ -86,8 +89,23 @@ export class XeroComponent implements OnInit {
8689
});
8790
}
8891

92+
private handleAuthParameters(): void {
93+
this.route.queryParams.subscribe(params => {
94+
const loginRequired = params.login_required === 'true';
95+
const authCode = params.authCode;
96+
97+
if (loginRequired && authCode) {
98+
this.xeroAuthService.login(authCode).subscribe(
99+
() => this.setupWorkspace()
100+
);
101+
} else {
102+
this.setupWorkspace();
103+
}
104+
});
105+
}
106+
89107
ngOnInit(): void {
90-
this.setupWorkspace();
108+
this.handleAuthParameters();
91109
}
92110

93111

0 commit comments

Comments
 (0)