@xsolla/payment-client-core 0.1.14-test11 → 0.1.14-test12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,17 +17,48 @@ export class SavePaymentMethodStatusService {
17
17
  this.nextActionService = nextActionService;
18
18
  }
19
19
  async getStatus(params) {
20
+ console.log('getStatus', params);
20
21
  this.statusRequestService.setRequestParams(params);
21
- this.startWaitingStatusUpdates(params.invoice);
22
+ // todo: get account
23
+ const accountData = await this.getPaymentAccountData(params.invoice);
24
+ // this.startWaitingStatusUpdates(params.invoice);
22
25
  this.statusRequestService.request();
23
26
  const statusResponse = await firstValueFrom(this.statusRequestService.response$);
24
- if (!this.savePaymentMethodStatus) {
27
+ // const savingFailedOrCancel = statusResponse.status?.titleClass === TitleClass.cancel || statusResponse.status?.titleClass === TitleClass.cancelUser;
28
+ // const savingSuccessful = statusResponse.status?.titleClass === TitleClass.done && accountData?.new_account;
29
+ if (!this.savingFailedOrCancel(statusResponse?.status) && !this.savingSuccessful(accountData, statusResponse?.status)) {
30
+ // todo is proccessing
31
+ this.startWaitingStatusUpdates(params.invoice);
25
32
  statusResponse.status.statusState = StatusEnum.processing;
26
33
  }
27
34
  statusResponse.status.isSavePaymentAccount = true;
28
35
  return statusResponse.status;
36
+ // if (!this.savePaymentMethodStatus) {
37
+ // statusResponse.status.statusState = StatusEnum.processing;
38
+ // }
39
+ // statusResponse.status.isSavePaymentAccount = true;
40
+ // return statusResponse.status;
41
+ }
42
+ savingFailedOrCancel(status) {
43
+ return status?.titleClass === TitleClass.cancel || status?.titleClass === TitleClass.cancelUser;
44
+ }
45
+ savingSuccessful(accountData, status) {
46
+ return !!(status?.titleClass === TitleClass.done && accountData?.new_account);
47
+ }
48
+ getPaymentAccountData(invoice) {
49
+ return this.savedPaymentAccountChangesService
50
+ .request(invoice);
51
+ // .then((accountChanges: SavedPaymentAccountChanges) => {
52
+ // if (accountChanges) {
53
+ // this.handleSavingStatus(status, accountChanges.new_account);
54
+ // }
55
+ // });
29
56
  }
30
57
  startWaitingStatusUpdates(invoice) {
58
+ if (this.listenStatusSubscription) {
59
+ this.listenStatusSubscription.unsubscribe();
60
+ this.listenStatusService.stopListening();
61
+ }
31
62
  this.listenStatusService.listen(invoice);
32
63
  this.listenStatusSubscription = this.listenStatusService.statusUpdated$
33
64
  .subscribe(({ statusResponse }) => {
@@ -44,20 +75,22 @@ export class SavePaymentMethodStatusService {
44
75
  .request(status.invoice)
45
76
  .then((accountChanges) => {
46
77
  if (accountChanges) {
47
- this.handleSavingStatus(status, accountChanges.new_account);
78
+ this.handleSavingStatus(status, accountChanges);
48
79
  }
49
80
  });
50
81
  }
51
82
  handleSavingStatus(status, account) {
52
- this.listenStatusService.stopListening();
53
- this.listenStatusSubscription.unsubscribe();
54
- const updatingIsProcessing = status?.titleClass !== TitleClass.cancel && status?.titleClass !== TitleClass.cancelUser && !account;
55
- if (updatingIsProcessing) {
83
+ // const savingFailedOrCancel = status?.titleClass === TitleClass.cancel || status?.titleClass === TitleClass.cancelUser;
84
+ //
85
+ // const savingSuccessful = status?.titleClass === TitleClass.done && account;
86
+ if (!this.savingFailedOrCancel(status) && !this.savingSuccessful(account, status)) {
56
87
  return;
57
88
  }
58
- const paymentAccountWasSaved = status?.titleClass === TitleClass.done && account !== null;
89
+ this.listenStatusService.stopListening();
90
+ this.listenStatusSubscription.unsubscribe();
91
+ // const paymentAccountWasSaved = status?.titleClass === TitleClass.done && account !== null;
59
92
  const isSavePaymentMethod = true;
60
- this.savePaymentMethodStatus = paymentAccountWasSaved ? SavePaymentMethodStatus.success : SavePaymentMethodStatus.failed;
93
+ this.savePaymentMethodStatus = this.savingFailedOrCancel(status) ? SavePaymentMethodStatus.success : SavePaymentMethodStatus.failed;
61
94
  this.nextActionService.emitFlowUpdates(new StatusUpdatedAction(status, isSavePaymentMethod, this.savePaymentMethodStatus));
62
95
  }
63
96
  }
@@ -69,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
69
102
  providedIn: 'root'
70
103
  }]
71
104
  }], ctorParameters: function () { return [{ type: i1.StatusRequestService }, { type: i2.ListenStatusService }, { type: i3.SavedPaymentAccountChangesService }, { type: i4.NextActionService }]; } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1wYXltZW50LW1ldGhvZC1zdGF0dXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvc3RhdHVzL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsY0FBYyxFQUFzQixNQUFNLE1BQU0sQ0FBQztBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUsvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFLNUUsTUFBTSxPQUFPLDhCQUE4QjtJQUl6QyxZQUNtQixvQkFBMEMsRUFDMUMsbUJBQXdDLEVBQ3hDLGlDQUFvRSxFQUNwRSxpQkFBb0M7UUFIcEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUFDcEUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUFJLENBQUM7SUFDckQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUEyQjtRQUVoRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFcEMsTUFBTSxjQUFjLEdBQUcsTUFBTSxjQUFjLENBQ3pDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQ3BDLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ2pDLGNBQWMsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7U0FDM0Q7UUFDRCxjQUFjLENBQUMsTUFBTSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUNsRCxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQUVPLHlCQUF5QixDQUFDLE9BQWU7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWM7YUFDcEUsU0FBUyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFO1lBRWhDLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRTtnQkFDekIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTthQUN0RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHlCQUF5QixDQUFDLE1BQWM7UUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDbkIsT0FBTztTQUNSO1FBQ0QsS0FBSyxJQUFJLENBQUMsaUNBQWlDO2FBQ3hDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2FBQ3ZCLElBQUksQ0FBQyxDQUFDLGNBQTBDLEVBQUUsRUFBRTtZQUNuRCxJQUFJLGNBQWMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDN0Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxrQkFBa0IsQ0FDeEIsTUFBYyxFQUNkLE9BQW1DO1FBRW5DLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFNUMsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLEVBQUUsVUFBVSxLQUFLLFVBQVUsQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFFLFVBQVUsS0FBSyxVQUFVLENBQUMsVUFBVSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRWxJLElBQUksb0JBQW9CLEVBQUU7WUFDeEIsT0FBTztTQUNSO1FBRUQsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLEVBQUUsVUFBVSxLQUFLLFVBQVUsQ0FBQyxJQUFJLElBQUksT0FBTyxLQUFLLElBQUksQ0FBQztRQUMxRixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUVqQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDO1FBRXpILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQ3BDLElBQUksbUJBQW1CLENBQUMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUNuRixDQUFDO0lBQ0osQ0FBQzs7MkhBMUVVLDhCQUE4QjsrSEFBOUIsOEJBQThCLGNBRjdCLE1BQU07MkZBRVAsOEJBQThCO2tCQUgxQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0YXR1c1JlcXVlc3RQYXJhbXMgfSBmcm9tICcuLi9zdGF0dXMtcmVxdWVzdC9zdGF0dXMtcmVxdWVzdC1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJy4uL3N0YXR1cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIHNraXAsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RhdHVzUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi9zdGF0dXMtcmVxdWVzdC9zdGF0dXMtcmVxdWVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXR1c1VwZGF0ZWRBY3Rpb24gfSBmcm9tICcuLi8uLi9hY3Rpb25zL3N0YXR1cy11cGRhdGVkL3N0YXR1cy11cGRhdGVkLmFjdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBMaXN0ZW5TdGF0dXNTZXJ2aWNlIH0gZnJvbSAnLi4vbGlzdGVuLXN0YXR1cy9saXN0ZW4tc3RhdHVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXMgfSBmcm9tICcuL2FwaS9zYXZlZC1wYXltZW50LWFjY291bnQtY2hhbmdlcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXNTZXJ2aWNlIH0gZnJvbSAnLi9hcGkvc2F2ZWQtcGF5bWVudC1hY2NvdW50LWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQgeyBTYXZlZFBheW1lbnRBY2NvdW50IH0gZnJvbSAnLi9hcGkvc2F2ZWQtcGF5bWVudC1hY2NvdW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaXRsZUNsYXNzIH0gZnJvbSAnLi4vdGl0bGUtY2xhc3MuZW51bSc7XG5pbXBvcnQgeyBOZXh0QWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2FjdGlvbnMvbmV4dC1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0dXNFbnVtIH0gZnJvbSAnLi4vc3RhdHVzLmVudW0nO1xuaW1wb3J0IHsgU2F2ZVBheW1lbnRNZXRob2RTdGF0dXMgfSBmcm9tICcuL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzLmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTYXZlUGF5bWVudE1ldGhvZFN0YXR1c1NlcnZpY2Uge1xuICBwcml2YXRlIHNhdmVQYXltZW50TWV0aG9kU3RhdHVzPzogU2F2ZVBheW1lbnRNZXRob2RTdGF0dXM7XG4gIHByaXZhdGUgbGlzdGVuU3RhdHVzU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c1JlcXVlc3RTZXJ2aWNlOiBTdGF0dXNSZXF1ZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpc3RlblN0YXR1c1NlcnZpY2U6IExpc3RlblN0YXR1c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzYXZlZFBheW1lbnRBY2NvdW50Q2hhbmdlc1NlcnZpY2U6IFNhdmVkUGF5bWVudEFjY291bnRDaGFuZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5leHRBY3Rpb25TZXJ2aWNlOiBOZXh0QWN0aW9uU2VydmljZSkgeyB9XG4gIHB1YmxpYyBhc3luYyBnZXRTdGF0dXMocGFyYW1zOiBTdGF0dXNSZXF1ZXN0UGFyYW1zKTogUHJvbWlzZTxTdGF0dXM+IHtcblxuICAgIHRoaXMuc3RhdHVzUmVxdWVzdFNlcnZpY2Uuc2V0UmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuXG4gICAgdGhpcy5zdGFydFdhaXRpbmdTdGF0dXNVcGRhdGVzKHBhcmFtcy5pbnZvaWNlKTtcblxuICAgIHRoaXMuc3RhdHVzUmVxdWVzdFNlcnZpY2UucmVxdWVzdCgpO1xuXG4gICAgY29uc3Qgc3RhdHVzUmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuc3RhdHVzUmVxdWVzdFNlcnZpY2UucmVzcG9uc2UkXG4gICAgKTtcblxuICAgIGlmICghdGhpcy5zYXZlUGF5bWVudE1ldGhvZFN0YXR1cykge1xuICAgICAgc3RhdHVzUmVzcG9uc2Uuc3RhdHVzLnN0YXR1c1N0YXRlID0gU3RhdHVzRW51bS5wcm9jZXNzaW5nO1xuICAgIH1cbiAgICBzdGF0dXNSZXNwb25zZS5zdGF0dXMuaXNTYXZlUGF5bWVudEFjY291bnQgPSB0cnVlO1xuICAgIHJldHVybiBzdGF0dXNSZXNwb25zZS5zdGF0dXM7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0V2FpdGluZ1N0YXR1c1VwZGF0ZXMoaW52b2ljZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5TdGF0dXNTZXJ2aWNlLmxpc3RlbihpbnZvaWNlKTtcblxuICAgIHRoaXMubGlzdGVuU3RhdHVzU3Vic2NyaXB0aW9uID0gdGhpcy5saXN0ZW5TdGF0dXNTZXJ2aWNlLnN0YXR1c1VwZGF0ZWQkXG4gICAgICAuc3Vic2NyaWJlKCh7IHN0YXR1c1Jlc3BvbnNlIH0pID0+IHtcblxuICAgICAgICBpZiAoc3RhdHVzUmVzcG9uc2Uuc3RhdHVzKSB7XG4gICAgICAgICAgdGhpcy5sb2FkTmV3UGF5bWVudEFjY291bnREYXRhKHN0YXR1c1Jlc3BvbnNlLnN0YXR1cylcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWROZXdQYXltZW50QWNjb3VudERhdGEoc3RhdHVzOiBTdGF0dXMpOiB2b2lkIHtcbiAgICBpZiAoIXN0YXR1cy5pbnZvaWNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZvaWQgdGhpcy5zYXZlZFBheW1lbnRBY2NvdW50Q2hhbmdlc1NlcnZpY2VcbiAgICAgIC5yZXF1ZXN0KHN0YXR1cy5pbnZvaWNlKVxuICAgICAgLnRoZW4oKGFjY291bnRDaGFuZ2VzOiBTYXZlZFBheW1lbnRBY2NvdW50Q2hhbmdlcykgPT4ge1xuICAgICAgICBpZiAoYWNjb3VudENoYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLmhhbmRsZVNhdmluZ1N0YXR1cyhzdGF0dXMsIGFjY291bnRDaGFuZ2VzLm5ld19hY2NvdW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNhdmluZ1N0YXR1cyhcbiAgICBzdGF0dXM6IFN0YXR1cyxcbiAgICBhY2NvdW50OiBTYXZlZFBheW1lbnRBY2NvdW50IHwgbnVsbFxuICApOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblN0YXR1c1NlcnZpY2Uuc3RvcExpc3RlbmluZygpO1xuICAgIHRoaXMubGlzdGVuU3RhdHVzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICBjb25zdCB1cGRhdGluZ0lzUHJvY2Vzc2luZyA9IHN0YXR1cz8udGl0bGVDbGFzcyAhPT0gVGl0bGVDbGFzcy5jYW5jZWwgJiYgc3RhdHVzPy50aXRsZUNsYXNzICE9PSBUaXRsZUNsYXNzLmNhbmNlbFVzZXIgJiYgIWFjY291bnQ7XG5cbiAgICBpZiAodXBkYXRpbmdJc1Byb2Nlc3NpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYXltZW50QWNjb3VudFdhc1NhdmVkID0gc3RhdHVzPy50aXRsZUNsYXNzID09PSBUaXRsZUNsYXNzLmRvbmUgJiYgYWNjb3VudCAhPT0gbnVsbDtcbiAgICBjb25zdCBpc1NhdmVQYXltZW50TWV0aG9kID0gdHJ1ZTtcblxuICAgIHRoaXMuc2F2ZVBheW1lbnRNZXRob2RTdGF0dXMgPSBwYXltZW50QWNjb3VudFdhc1NhdmVkID8gU2F2ZVBheW1lbnRNZXRob2RTdGF0dXMuc3VjY2VzcyA6IFNhdmVQYXltZW50TWV0aG9kU3RhdHVzLmZhaWxlZDtcblxuICAgIHRoaXMubmV4dEFjdGlvblNlcnZpY2UuZW1pdEZsb3dVcGRhdGVzKFxuICAgICAgbmV3IFN0YXR1c1VwZGF0ZWRBY3Rpb24oc3RhdHVzLCBpc1NhdmVQYXltZW50TWV0aG9kLCB0aGlzLnNhdmVQYXltZW50TWV0aG9kU3RhdHVzKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1wYXltZW50LW1ldGhvZC1zdGF0dXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvc3RhdHVzL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsY0FBYyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUVwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUsvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFLNUUsTUFBTSxPQUFPLDhCQUE4QjtJQUl6QyxZQUNtQixvQkFBMEMsRUFDMUMsbUJBQXdDLEVBQ3hDLGlDQUFvRSxFQUNwRSxpQkFBb0M7UUFIcEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUFDcEUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUFJLENBQUM7SUFDckQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUEyQjtRQUNoRCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsb0JBQW9CO1FBQ3BCLE1B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QUNGLDhFQUE4RTtRQUc5RSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNqRixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTVDLDZGQUE2RjtRQUM3RixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUVqQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQztRQUVwSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUNwQyxJQUFJLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FDbkYsQ0FBQztJQUNKLENBQUM7OzJIQTFIVSw4QkFBOEI7K0hBQTlCLDhCQUE4QixjQUY3QixNQUFNOzJGQUVQLDhCQUE4QjtrQkFIMUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdGF0dXNSZXF1ZXN0UGFyYW1zIH0gZnJvbSAnLi4vc3RhdHVzLXJlcXVlc3Qvc3RhdHVzLXJlcXVlc3QtcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdGF0dXMgfSBmcm9tICcuLi9zdGF0dXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN0YXR1c1JlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vc3RhdHVzLXJlcXVlc3Qvc3RhdHVzLXJlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0dXNVcGRhdGVkQWN0aW9uIH0gZnJvbSAnLi4vLi4vYWN0aW9ucy9zdGF0dXMtdXBkYXRlZC9zdGF0dXMtdXBkYXRlZC5hY3Rpb24uY2xhc3MnO1xuaW1wb3J0IHsgTGlzdGVuU3RhdHVzU2VydmljZSB9IGZyb20gJy4uL2xpc3Rlbi1zdGF0dXMvbGlzdGVuLXN0YXR1cy5zZXJ2aWNlJztcbmltcG9ydCB7IFNhdmVkUGF5bWVudEFjY291bnRDaGFuZ2VzIH0gZnJvbSAnLi9hcGkvc2F2ZWQtcGF5bWVudC1hY2NvdW50LWNoYW5nZXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNhdmVkUGF5bWVudEFjY291bnRDaGFuZ2VzU2VydmljZSB9IGZyb20gJy4vYXBpL3NhdmVkLXBheW1lbnQtYWNjb3VudC1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2F2ZWRQYXltZW50QWNjb3VudCB9IGZyb20gJy4vYXBpL3NhdmVkLXBheW1lbnQtYWNjb3VudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGl0bGVDbGFzcyB9IGZyb20gJy4uL3RpdGxlLWNsYXNzLmVudW0nO1xuaW1wb3J0IHsgTmV4dEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hY3Rpb25zL25leHQtYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RhdHVzRW51bSB9IGZyb20gJy4uL3N0YXR1cy5lbnVtJztcbmltcG9ydCB7IFNhdmVQYXltZW50TWV0aG9kU3RhdHVzIH0gZnJvbSAnLi9zYXZlLXBheW1lbnQtbWV0aG9kLXN0YXR1cy5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2F2ZVBheW1lbnRNZXRob2RTdGF0dXNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzYXZlUGF5bWVudE1ldGhvZFN0YXR1cz86IFNhdmVQYXltZW50TWV0aG9kU3RhdHVzO1xuICBwcml2YXRlIGxpc3RlblN0YXR1c1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNSZXF1ZXN0U2VydmljZTogU3RhdHVzUmVxdWVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaXN0ZW5TdGF0dXNTZXJ2aWNlOiBMaXN0ZW5TdGF0dXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXNTZXJ2aWNlOiBTYXZlZFBheW1lbnRBY2NvdW50Q2hhbmdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXh0QWN0aW9uU2VydmljZTogTmV4dEFjdGlvblNlcnZpY2UpIHsgfVxuICBwdWJsaWMgYXN5bmMgZ2V0U3RhdHVzKHBhcmFtczogU3RhdHVzUmVxdWVzdFBhcmFtcyk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgY29uc29sZS5sb2coJ2dldFN0YXR1cycsIHBhcmFtcyk7XG5cbiAgICB0aGlzLnN0YXR1c1JlcXVlc3RTZXJ2aWNlLnNldFJlcXVlc3RQYXJhbXMocGFyYW1zKTtcblxuICAgIC8vIHRvZG86IGdldCBhY2NvdW50XG4gICAgY29uc3QgYWNjb3VudERhdGEgPSBhd2FpdCB0aGlzLmdldFBheW1lbnRBY2NvdW50RGF0YShwYXJhbXMuaW52b2ljZSk7XG4gICAgLy8gdGhpcy5zdGFydFdhaXRpbmdTdGF0dXNVcGRhdGVzKHBhcmFtcy5pbnZvaWNlKTtcblxuICAgIHRoaXMuc3RhdHVzUmVxdWVzdFNlcnZpY2UucmVxdWVzdCgpO1xuXG4gICAgY29uc3Qgc3RhdHVzUmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuc3RhdHVzUmVxdWVzdFNlcnZpY2UucmVzcG9uc2UkXG4gICAgKTtcblxuXG5cbiAgICAvLyBjb25zdCBzYXZpbmdGYWlsZWRPckNhbmNlbCA9IHN0YXR1c1Jlc3BvbnNlLnN0YXR1cz8udGl0bGVDbGFzcyA9PT0gVGl0bGVDbGFzcy5jYW5jZWwgfHwgc3RhdHVzUmVzcG9uc2Uuc3RhdHVzPy50aXRsZUNsYXNzID09PSBUaXRsZUNsYXNzLmNhbmNlbFVzZXI7XG5cbiAgICAvLyBjb25zdCBzYXZpbmdTdWNjZXNzZnVsID0gc3RhdHVzUmVzcG9uc2Uuc3RhdHVzPy50aXRsZUNsYXNzID09PSBUaXRsZUNsYXNzLmRvbmUgJiYgYWNjb3VudERhdGE/Lm5ld19hY2NvdW50O1xuXG4gICAgaWYgKCF0aGlzLnNhdmluZ0ZhaWxlZE9yQ2FuY2VsKHN0YXR1c1Jlc3BvbnNlPy5zdGF0dXMpICYmICF0aGlzLnNhdmluZ1N1Y2Nlc3NmdWwoYWNjb3VudERhdGEsIHN0YXR1c1Jlc3BvbnNlPy5zdGF0dXMpKSB7XG4gICAgICAvLyB0b2RvIGlzIHByb2NjZXNzaW5nXG5cbiAgICAgIHRoaXMuc3RhcnRXYWl0aW5nU3RhdHVzVXBkYXRlcyhwYXJhbXMuaW52b2ljZSk7XG4gICAgICBzdGF0dXNSZXNwb25zZS5zdGF0dXMuc3RhdHVzU3RhdGUgPSBTdGF0dXNFbnVtLnByb2Nlc3Npbmc7XG4gICAgfVxuICAgIHN0YXR1c1Jlc3BvbnNlLnN0YXR1cy5pc1NhdmVQYXltZW50QWNjb3VudCA9IHRydWU7XG4gICAgcmV0dXJuIHN0YXR1c1Jlc3BvbnNlLnN0YXR1cztcblxuICAgIC8vIGlmICghdGhpcy5zYXZlUGF5bWVudE1ldGhvZFN0YXR1cykge1xuICAgIC8vICAgc3RhdHVzUmVzcG9uc2Uuc3RhdHVzLnN0YXR1c1N0YXRlID0gU3RhdHVzRW51bS5wcm9jZXNzaW5nO1xuICAgIC8vIH1cbiAgICAvLyBzdGF0dXNSZXNwb25zZS5zdGF0dXMuaXNTYXZlUGF5bWVudEFjY291bnQgPSB0cnVlO1xuICAgIC8vIHJldHVybiBzdGF0dXNSZXNwb25zZS5zdGF0dXM7XG4gIH1cblxuICBwcml2YXRlIHNhdmluZ0ZhaWxlZE9yQ2FuY2VsKHN0YXR1cz86IFN0YXR1cyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdGF0dXM/LnRpdGxlQ2xhc3MgPT09IFRpdGxlQ2xhc3MuY2FuY2VsIHx8IHN0YXR1cz8udGl0bGVDbGFzcyA9PT0gVGl0bGVDbGFzcy5jYW5jZWxVc2VyO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZpbmdTdWNjZXNzZnVsKGFjY291bnREYXRhOiBTYXZlZFBheW1lbnRBY2NvdW50Q2hhbmdlcywgc3RhdHVzPzogU3RhdHVzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHN0YXR1cz8udGl0bGVDbGFzcyA9PT0gVGl0bGVDbGFzcy5kb25lICYmIGFjY291bnREYXRhPy5uZXdfYWNjb3VudCk7XG4gIH1cblxuICBwcml2YXRlIGdldFBheW1lbnRBY2NvdW50RGF0YShpbnZvaWNlOiBudW1iZXIpOiBQcm9taXNlPFNhdmVkUGF5bWVudEFjY291bnRDaGFuZ2VzPiB7XG4gICAgcmV0dXJuIHRoaXMuc2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXNTZXJ2aWNlXG4gICAgICAucmVxdWVzdChpbnZvaWNlKVxuICAgICAgLy8gLnRoZW4oKGFjY291bnRDaGFuZ2VzOiBTYXZlZFBheW1lbnRBY2NvdW50Q2hhbmdlcykgPT4ge1xuICAgICAgLy8gICBpZiAoYWNjb3VudENoYW5nZXMpIHtcbiAgICAgIC8vICAgICB0aGlzLmhhbmRsZVNhdmluZ1N0YXR1cyhzdGF0dXMsIGFjY291bnRDaGFuZ2VzLm5ld19hY2NvdW50KTtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0V2FpdGluZ1N0YXR1c1VwZGF0ZXMoaW52b2ljZTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGlzdGVuU3RhdHVzU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmxpc3RlblN0YXR1c1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5saXN0ZW5TdGF0dXNTZXJ2aWNlLnN0b3BMaXN0ZW5pbmcoKTtcbiAgICB9XG4gICAgdGhpcy5saXN0ZW5TdGF0dXNTZXJ2aWNlLmxpc3RlbihpbnZvaWNlKTtcblxuICAgIHRoaXMubGlzdGVuU3RhdHVzU3Vic2NyaXB0aW9uID0gdGhpcy5saXN0ZW5TdGF0dXNTZXJ2aWNlLnN0YXR1c1VwZGF0ZWQkXG4gICAgICAuc3Vic2NyaWJlKCh7IHN0YXR1c1Jlc3BvbnNlIH0pID0+IHtcblxuICAgICAgICBpZiAoc3RhdHVzUmVzcG9uc2Uuc3RhdHVzKSB7XG4gICAgICAgICAgdGhpcy5sb2FkTmV3UGF5bWVudEFjY291bnREYXRhKHN0YXR1c1Jlc3BvbnNlLnN0YXR1cylcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWROZXdQYXltZW50QWNjb3VudERhdGEoc3RhdHVzOiBTdGF0dXMpOiB2b2lkIHtcblxuXG4gICAgaWYgKCFzdGF0dXMuaW52b2ljZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2b2lkIHRoaXMuc2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXNTZXJ2aWNlXG4gICAgICAucmVxdWVzdChzdGF0dXMuaW52b2ljZSlcbiAgICAgIC50aGVuKChhY2NvdW50Q2hhbmdlczogU2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXMpID0+IHtcblxuXG4gICAgICAgIGlmIChhY2NvdW50Q2hhbmdlcykge1xuXG4gICAgICAgICAgdGhpcy5oYW5kbGVTYXZpbmdTdGF0dXMoc3RhdHVzLCBhY2NvdW50Q2hhbmdlcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTYXZpbmdTdGF0dXMoXG4gICAgc3RhdHVzOiBTdGF0dXMsXG4gICAgYWNjb3VudDogU2F2ZWRQYXltZW50QWNjb3VudENoYW5nZXNcbiAgKTogdm9pZCB7XG5cbiAgICAvLyBjb25zdCBzYXZpbmdGYWlsZWRPckNhbmNlbCA9IHN0YXR1cz8udGl0bGVDbGFzcyA9PT0gVGl0bGVDbGFzcy5jYW5jZWwgfHwgc3RhdHVzPy50aXRsZUNsYXNzID09PSBUaXRsZUNsYXNzLmNhbmNlbFVzZXI7XG4gICAgLy9cbiAgICAvLyBjb25zdCBzYXZpbmdTdWNjZXNzZnVsID0gc3RhdHVzPy50aXRsZUNsYXNzID09PSBUaXRsZUNsYXNzLmRvbmUgJiYgYWNjb3VudDtcblxuXG4gICAgaWYgKCF0aGlzLnNhdmluZ0ZhaWxlZE9yQ2FuY2VsKHN0YXR1cykgJiYgIXRoaXMuc2F2aW5nU3VjY2Vzc2Z1bChhY2NvdW50LCBzdGF0dXMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGlzdGVuU3RhdHVzU2VydmljZS5zdG9wTGlzdGVuaW5nKCk7XG4gICAgdGhpcy5saXN0ZW5TdGF0dXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblxuICAgIC8vIGNvbnN0IHBheW1lbnRBY2NvdW50V2FzU2F2ZWQgPSBzdGF0dXM/LnRpdGxlQ2xhc3MgPT09IFRpdGxlQ2xhc3MuZG9uZSAmJiBhY2NvdW50ICE9PSBudWxsO1xuICAgIGNvbnN0IGlzU2F2ZVBheW1lbnRNZXRob2QgPSB0cnVlO1xuXG4gICAgdGhpcy5zYXZlUGF5bWVudE1ldGhvZFN0YXR1cyA9IHRoaXMuc2F2aW5nRmFpbGVkT3JDYW5jZWwoc3RhdHVzKSA/IFNhdmVQYXltZW50TWV0aG9kU3RhdHVzLnN1Y2Nlc3MgOiBTYXZlUGF5bWVudE1ldGhvZFN0YXR1cy5mYWlsZWQ7XG5cbiAgICB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmVtaXRGbG93VXBkYXRlcyhcbiAgICAgIG5ldyBTdGF0dXNVcGRhdGVkQWN0aW9uKHN0YXR1cywgaXNTYXZlUGF5bWVudE1ldGhvZCwgdGhpcy5zYXZlUGF5bWVudE1ldGhvZFN0YXR1cylcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -4745,18 +4745,49 @@ class SavePaymentMethodStatusService {
4745
4745
  }
4746
4746
  getStatus(params) {
4747
4747
  return __awaiter(this, void 0, void 0, function* () {
4748
+ console.log('getStatus', params);
4748
4749
  this.statusRequestService.setRequestParams(params);
4749
- this.startWaitingStatusUpdates(params.invoice);
4750
+ // todo: get account
4751
+ const accountData = yield this.getPaymentAccountData(params.invoice);
4752
+ // this.startWaitingStatusUpdates(params.invoice);
4750
4753
  this.statusRequestService.request();
4751
4754
  const statusResponse = yield firstValueFrom(this.statusRequestService.response$);
4752
- if (!this.savePaymentMethodStatus) {
4755
+ // const savingFailedOrCancel = statusResponse.status?.titleClass === TitleClass.cancel || statusResponse.status?.titleClass === TitleClass.cancelUser;
4756
+ // const savingSuccessful = statusResponse.status?.titleClass === TitleClass.done && accountData?.new_account;
4757
+ if (!this.savingFailedOrCancel(statusResponse === null || statusResponse === void 0 ? void 0 : statusResponse.status) && !this.savingSuccessful(accountData, statusResponse === null || statusResponse === void 0 ? void 0 : statusResponse.status)) {
4758
+ // todo is proccessing
4759
+ this.startWaitingStatusUpdates(params.invoice);
4753
4760
  statusResponse.status.statusState = StatusEnum.processing;
4754
4761
  }
4755
4762
  statusResponse.status.isSavePaymentAccount = true;
4756
4763
  return statusResponse.status;
4764
+ // if (!this.savePaymentMethodStatus) {
4765
+ // statusResponse.status.statusState = StatusEnum.processing;
4766
+ // }
4767
+ // statusResponse.status.isSavePaymentAccount = true;
4768
+ // return statusResponse.status;
4757
4769
  });
4758
4770
  }
4771
+ savingFailedOrCancel(status) {
4772
+ return (status === null || status === void 0 ? void 0 : status.titleClass) === TitleClass.cancel || (status === null || status === void 0 ? void 0 : status.titleClass) === TitleClass.cancelUser;
4773
+ }
4774
+ savingSuccessful(accountData, status) {
4775
+ return !!((status === null || status === void 0 ? void 0 : status.titleClass) === TitleClass.done && (accountData === null || accountData === void 0 ? void 0 : accountData.new_account));
4776
+ }
4777
+ getPaymentAccountData(invoice) {
4778
+ return this.savedPaymentAccountChangesService
4779
+ .request(invoice);
4780
+ // .then((accountChanges: SavedPaymentAccountChanges) => {
4781
+ // if (accountChanges) {
4782
+ // this.handleSavingStatus(status, accountChanges.new_account);
4783
+ // }
4784
+ // });
4785
+ }
4759
4786
  startWaitingStatusUpdates(invoice) {
4787
+ if (this.listenStatusSubscription) {
4788
+ this.listenStatusSubscription.unsubscribe();
4789
+ this.listenStatusService.stopListening();
4790
+ }
4760
4791
  this.listenStatusService.listen(invoice);
4761
4792
  this.listenStatusSubscription = this.listenStatusService.statusUpdated$
4762
4793
  .subscribe(({ statusResponse }) => {
@@ -4773,20 +4804,22 @@ class SavePaymentMethodStatusService {
4773
4804
  .request(status.invoice)
4774
4805
  .then((accountChanges) => {
4775
4806
  if (accountChanges) {
4776
- this.handleSavingStatus(status, accountChanges.new_account);
4807
+ this.handleSavingStatus(status, accountChanges);
4777
4808
  }
4778
4809
  });
4779
4810
  }
4780
4811
  handleSavingStatus(status, account) {
4781
- this.listenStatusService.stopListening();
4782
- this.listenStatusSubscription.unsubscribe();
4783
- const updatingIsProcessing = (status === null || status === void 0 ? void 0 : status.titleClass) !== TitleClass.cancel && (status === null || status === void 0 ? void 0 : status.titleClass) !== TitleClass.cancelUser && !account;
4784
- if (updatingIsProcessing) {
4812
+ // const savingFailedOrCancel = status?.titleClass === TitleClass.cancel || status?.titleClass === TitleClass.cancelUser;
4813
+ //
4814
+ // const savingSuccessful = status?.titleClass === TitleClass.done && account;
4815
+ if (!this.savingFailedOrCancel(status) && !this.savingSuccessful(account, status)) {
4785
4816
  return;
4786
4817
  }
4787
- const paymentAccountWasSaved = (status === null || status === void 0 ? void 0 : status.titleClass) === TitleClass.done && account !== null;
4818
+ this.listenStatusService.stopListening();
4819
+ this.listenStatusSubscription.unsubscribe();
4820
+ // const paymentAccountWasSaved = status?.titleClass === TitleClass.done && account !== null;
4788
4821
  const isSavePaymentMethod = true;
4789
- this.savePaymentMethodStatus = paymentAccountWasSaved ? SavePaymentMethodStatus.success : SavePaymentMethodStatus.failed;
4822
+ this.savePaymentMethodStatus = this.savingFailedOrCancel(status) ? SavePaymentMethodStatus.success : SavePaymentMethodStatus.failed;
4790
4823
  this.nextActionService.emitFlowUpdates(new StatusUpdatedAction(status, isSavePaymentMethod, this.savePaymentMethodStatus));
4791
4824
  }
4792
4825
  }