taxtank-core 0.8.6 → 0.8.7
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.
- package/bundles/taxtank-core.umd.js +94 -92
- package/bundles/taxtank-core.umd.js.map +1 -1
- package/esm2015/lib/db/Models/transaction-base.js +2 -1
- package/esm2015/lib/services/http/address/address.service.js +39 -0
- package/esm2015/lib/services/http/bank/bank-account/bank-account.service.js +118 -0
- package/esm2015/lib/services/http/bank/bank-connection/bank-connection.service.js +52 -0
- package/esm2015/lib/services/http/bank/bank-transaction/bank-transaction.service.js +89 -0
- package/esm2015/lib/services/http/bank/bank.service.js +24 -0
- package/esm2015/lib/services/http/bank/basiq/basiq.service.js +94 -0
- package/esm2015/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.js +38 -0
- package/esm2015/lib/services/http/chart-accounts/chart-accounts.service.js +89 -0
- package/esm2015/lib/services/http/chat/chat.service.js +77 -0
- package/esm2015/lib/services/http/chat/message/message.service.js +65 -0
- package/esm2015/lib/services/http/chat/message-document/message-document.service.js +118 -0
- package/esm2015/lib/services/{depreciation/capital-project.service.js → http/depreciation/depreciation-capital-project/depreciation-capital-project.service.js} +7 -7
- package/esm2015/lib/services/http/depreciation/depreciation.service.js +146 -0
- package/esm2015/lib/services/http/document/document-folder/document-folder.service.js +84 -0
- package/esm2015/lib/services/{client → http/firm/client-invite}/client-invite.service.js +7 -7
- package/esm2015/lib/services/http/firm/client-movement/client-movement.service.js +98 -0
- package/esm2015/lib/services/http/firm/employee/employee.service.js +39 -0
- package/esm2015/lib/services/http/firm/employee-invite/employee-invite.service.js +53 -0
- package/esm2015/lib/services/http/firm/firm.service.js +79 -0
- package/esm2015/lib/services/http/firm/portfolio-report/client-portfolio-report.service.js +37 -0
- package/esm2015/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.js +90 -0
- package/esm2015/lib/services/http/income-source/income-source.service.js +109 -0
- package/esm2015/lib/services/http/income-source/salary-forecast/salary-forecast.service.js +90 -0
- package/esm2015/lib/services/http/income-source/sole-forecast/sole-forecast.service.js +87 -0
- package/esm2015/lib/services/http/loan/borrowing-expense/borrowing-expense.service.js +73 -0
- package/esm2015/lib/services/http/loan/loan.service.js +145 -0
- package/esm2015/lib/services/http/property/property-category/property-category.service.js +23 -0
- package/esm2015/lib/services/http/property/property-category-movement/property-category-movement.service.js +47 -0
- package/esm2015/lib/services/http/property/property-document/property-document.service.js +70 -0
- package/esm2015/lib/services/http/property/property-sale/property-sale.service.js +20 -0
- package/esm2015/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.js +21 -0
- package/esm2015/lib/services/http/property/property-share/property-share.service.js +115 -0
- package/esm2015/lib/services/http/property/property.service.js +126 -0
- package/esm2015/lib/services/http/rest/rest.service.js +190 -0
- package/esm2015/lib/services/http/service-notification/service-notification.service.js +65 -0
- package/esm2015/lib/services/http/subscription/subscription.service.js +157 -0
- package/esm2015/lib/services/http/tax-review/tax-review-history/tax-review-history.service.js +41 -0
- package/esm2015/lib/services/http/tax-review/tax-review.service.js +103 -0
- package/esm2015/lib/services/http/tax-summary/tax-summary.service.js +71 -0
- package/esm2015/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.js +85 -0
- package/esm2015/lib/services/http/transaction/transaction.service.js +319 -0
- package/esm2015/lib/services/http/user/occupation/occupation.service.js +45 -0
- package/esm2015/lib/services/http/user/user-event-setting/user-event-setting.service.js +59 -0
- package/esm2015/lib/services/http/user/user-event-type/user-event-type.service.js +29 -0
- package/esm2015/lib/services/http/user/user.service.js +124 -0
- package/esm2015/lib/services/http/vehicle/vehicle.service.js +237 -0
- package/esm2015/lib/services/property/equity-position-chart/equity-position-chart.service.js +45 -0
- package/esm2015/public-api.js +48 -48
- package/fesm2015/taxtank-core.js +51 -49
- package/fesm2015/taxtank-core.js.map +1 -1
- package/lib/services/{address → http/address}/address.service.d.ts +1 -1
- package/lib/services/{bank → http/bank/bank-account}/bank-account.service.d.ts +5 -5
- package/lib/services/{bank → http/bank/bank-connection}/bank-connection.service.d.ts +5 -5
- package/lib/services/{bank → http/bank/bank-transaction}/bank-transaction.service.d.ts +5 -5
- package/lib/services/{bank → http/bank}/bank.service.d.ts +4 -4
- package/lib/services/{bank → http/bank/basiq}/basiq.service.d.ts +7 -7
- package/lib/services/{chart-accounts → http/chart-accounts/chart-accounts-depreciations}/chart-accounts-depreciations.service.d.ts +4 -4
- package/lib/services/{chart-accounts → http/chart-accounts}/chart-accounts.service.d.ts +3 -3
- package/lib/services/{chat → http/chat}/chat.service.d.ts +7 -7
- package/lib/services/{chat → http/chat/message}/message.service.d.ts +7 -7
- package/lib/services/{chat → http/chat/message-document}/message-document.service.d.ts +3 -3
- package/lib/services/{depreciation/capital-project.service.d.ts → http/depreciation/depreciation-capital-project/depreciation-capital-project.service.d.ts} +4 -4
- package/lib/services/{depreciation → http/depreciation}/depreciation.service.d.ts +5 -5
- package/lib/services/{document → http/document/document-folder}/document-folder.service.d.ts +6 -6
- package/lib/services/{client → http/firm/client-invite}/client-invite.service.d.ts +4 -4
- package/lib/services/{client → http/firm/client-movement}/client-movement.service.d.ts +7 -7
- package/lib/services/{employee → http/firm/employee}/employee.service.d.ts +4 -4
- package/lib/services/{employee → http/firm/employee-invite}/employee-invite.service.d.ts +4 -4
- package/lib/services/{firm → http/firm}/firm.service.d.ts +2 -2
- package/lib/services/{client → http/firm/portfolio-report}/client-portfolio-report.service.d.ts +1 -1
- package/lib/services/{income-source → http/income-source/income-source-forecast}/income-source-forecast.service.d.ts +5 -5
- package/lib/services/{income-source → http/income-source}/income-source.service.d.ts +8 -8
- package/lib/services/{income-source → http/income-source/salary-forecast}/salary-forecast.service.d.ts +6 -6
- package/lib/services/{income-source → http/income-source/sole-forecast}/sole-forecast.service.d.ts +5 -5
- package/lib/services/{borrowing-expense → http/loan/borrowing-expense}/borrowing-expense.service.d.ts +2 -2
- package/lib/services/{loan → http/loan}/loan.service.d.ts +6 -6
- package/lib/services/{property → http/property}/property-category/property-category.service.d.ts +4 -4
- package/lib/services/{property → http/property/property-category-movement}/property-category-movement.service.d.ts +4 -4
- package/lib/services/{property → http/property}/property-document/property-document.service.d.ts +5 -5
- package/lib/services/http/property/property-sale/property-sale.service.d.ts +10 -0
- package/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.d.ts +11 -0
- package/lib/services/{property → http/property}/property-share/property-share.service.d.ts +5 -5
- package/lib/services/{property → http/property}/property.service.d.ts +5 -5
- package/lib/services/{base-rest.service.d.ts → http/rest/rest.service.d.ts} +4 -4
- package/lib/services/http/service-notification/service-notification.service.d.ts +31 -0
- package/lib/services/{subscription → http/subscription}/subscription.service.d.ts +6 -6
- package/lib/services/{tax-review → http/tax-review/tax-review-history}/tax-review-history.service.d.ts +5 -5
- package/lib/services/{tax-review → http/tax-review}/tax-review.service.d.ts +6 -6
- package/lib/services/{tax-summary → http/tax-summary}/tax-summary.service.d.ts +2 -2
- package/lib/services/{transaction → http/transaction/transaction-allocation}/transaction-allocation.service.d.ts +6 -6
- package/lib/services/{transaction → http/transaction}/transaction.service.d.ts +7 -7
- package/lib/services/{user → http/user/occupation}/occupation.service.d.ts +1 -1
- package/lib/services/{user-event → http/user/user-event-setting}/user-event-setting.service.d.ts +5 -5
- package/lib/services/{user-event → http/user/user-event-type}/user-event-type.service.d.ts +5 -5
- package/lib/services/{user → http/user}/user.service.d.ts +3 -3
- package/lib/services/{work/work-tank.service.d.ts → http/vehicle/vehicle.service.d.ts} +9 -8
- package/lib/services/property/{equity-position-chart.service.d.ts → equity-position-chart/equity-position-chart.service.d.ts} +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +47 -47
- package/esm2015/lib/services/address/address.service.js +0 -39
- package/esm2015/lib/services/bank/bank-account.service.js +0 -118
- package/esm2015/lib/services/bank/bank-connection.service.js +0 -52
- package/esm2015/lib/services/bank/bank-transaction.service.js +0 -89
- package/esm2015/lib/services/bank/bank.service.js +0 -24
- package/esm2015/lib/services/bank/basiq.service.js +0 -94
- package/esm2015/lib/services/base-rest.service.js +0 -190
- package/esm2015/lib/services/borrowing-expense/borrowing-expense.service.js +0 -73
- package/esm2015/lib/services/chart-accounts/chart-accounts-depreciations.service.js +0 -38
- package/esm2015/lib/services/chart-accounts/chart-accounts.service.js +0 -89
- package/esm2015/lib/services/chat/chat.service.js +0 -77
- package/esm2015/lib/services/chat/message-document.service.js +0 -118
- package/esm2015/lib/services/chat/message.service.js +0 -65
- package/esm2015/lib/services/client/client-movement.service.js +0 -98
- package/esm2015/lib/services/client/client-portfolio-report.service.js +0 -37
- package/esm2015/lib/services/depreciation/depreciation.service.js +0 -146
- package/esm2015/lib/services/document/document-folder.service.js +0 -84
- package/esm2015/lib/services/employee/employee-invite.service.js +0 -53
- package/esm2015/lib/services/employee/employee.service.js +0 -39
- package/esm2015/lib/services/firm/firm.service.js +0 -79
- package/esm2015/lib/services/income-source/income-source-forecast.service.js +0 -90
- package/esm2015/lib/services/income-source/income-source.service.js +0 -109
- package/esm2015/lib/services/income-source/salary-forecast.service.js +0 -90
- package/esm2015/lib/services/income-source/sole-forecast.service.js +0 -87
- package/esm2015/lib/services/loan/loan.service.js +0 -145
- package/esm2015/lib/services/notification/notification.service.js +0 -65
- package/esm2015/lib/services/property/equity-position-chart.service.js +0 -45
- package/esm2015/lib/services/property/property-category/property-category.service.js +0 -23
- package/esm2015/lib/services/property/property-category-movement.service.js +0 -47
- package/esm2015/lib/services/property/property-document/property-document.service.js +0 -70
- package/esm2015/lib/services/property/property-sale/property-sale.service.js +0 -20
- package/esm2015/lib/services/property/property-sale/tax-exemption/tax-exemption.service.js +0 -21
- package/esm2015/lib/services/property/property-share/property-share.service.js +0 -115
- package/esm2015/lib/services/property/property.service.js +0 -126
- package/esm2015/lib/services/subscription/subscription.service.js +0 -157
- package/esm2015/lib/services/tax-review/tax-review-history.service.js +0 -41
- package/esm2015/lib/services/tax-review/tax-review.service.js +0 -103
- package/esm2015/lib/services/tax-summary/tax-summary.service.js +0 -71
- package/esm2015/lib/services/transaction/transaction-allocation.service.js +0 -85
- package/esm2015/lib/services/transaction/transaction.service.js +0 -319
- package/esm2015/lib/services/user/occupation.service.js +0 -45
- package/esm2015/lib/services/user/user.service.js +0 -124
- package/esm2015/lib/services/user-event/user-event-setting.service.js +0 -59
- package/esm2015/lib/services/user-event/user-event-type.service.js +0 -29
- package/esm2015/lib/services/work/work-tank.service.js +0 -236
- package/lib/services/notification/notification.service.d.ts +0 -31
- package/lib/services/property/property-sale/property-sale.service.d.ts +0 -10
- package/lib/services/property/property-sale/tax-exemption/tax-exemption.service.d.ts +0 -11
|
@@ -11,10 +11,11 @@ export class TransactionBase {
|
|
|
11
11
|
* Check if current tank is Work
|
|
12
12
|
*/
|
|
13
13
|
isWorkTank() {
|
|
14
|
+
// @TODO remove this hack
|
|
14
15
|
if (this.tankType) {
|
|
15
16
|
return this.tankType === TankTypeEnum.WORK;
|
|
16
17
|
}
|
|
17
18
|
return CHART_ACCOUNTS_CATEGORIES.work.includes(this.chartAccounts.category);
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvdHJhbnNhY3Rpb24tYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsTUFBTSxPQUFPLGVBQWU7SUFXMUI7O09BRUc7SUFDSCxjQUFjO1FBQ1osT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ1IseUJBQXlCO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssWUFBWSxDQUFDLElBQUksQ0FBQztTQUM1QztRQUNELE9BQU8seUJBQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi9wcm9wZXJ0eS9wcm9wZXJ0eSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzIH0gZnJvbSAnLi9jaGFydC1hY2NvdW50cyc7XG5pbXBvcnQgeyBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLWNhdGVnb3JpZXMuY29uc3QnO1xuaW1wb3J0IHsgVGFua1R5cGVFbnVtIH0gZnJvbSAnLi4vRW51bXMvdGFuay10eXBlLmVudW0nO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CYXNlIHtcbiAgaWQ/OiBudW1iZXI7XG4gIGFtb3VudD86IG51bWJlcjtcbiAgcHJvcGVydHk/OiBQcm9wZXJ0eTtcbiAgZGF0ZT86IERhdGU7XG4gIGNoYXJ0QWNjb3VudHM/OiBDaGFydEFjY291bnRzO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZmlsZT86IEZpbGU7XG4gIGNsYWltUGVyY2VudD86IG51bWJlcjtcbiAgdGFua1R5cGU6IFRhbmtUeXBlRW51bTtcblxuICAvKipcbiAgICogQ2hlY2sgaWYgY3VycmVudCB0YW5rIGlzIFByb3BlcnR5XG4gICAqL1xuICBpc1Byb3BlcnR5VGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnByb3BlcnR5O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGN1cnJlbnQgdGFuayBpcyBXb3JrXG4gICAqL1xuICBpc1dvcmtUYW5rKCk6IGJvb2xlYW4ge1xuICAgIC8vIEBUT0RPIHJlbW92ZSB0aGlzIGhhY2tcbiAgICBpZiAodGhpcy50YW5rVHlwZSkge1xuICAgICAgcmV0dXJuIHRoaXMudGFua1R5cGUgPT09IFRhbmtUeXBlRW51bS5XT1JLO1xuICAgIH1cbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy53b3JrLmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cy5jYXRlZ29yeSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { ReplaySubject } from 'rxjs';
|
|
3
|
+
import { Country } from '../../../models/address/country';
|
|
4
|
+
import { map } from 'rxjs/operators';
|
|
5
|
+
import { plainToClass } from 'class-transformer';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common/http";
|
|
8
|
+
export class AddressService {
|
|
9
|
+
constructor(http, environment) {
|
|
10
|
+
this.http = http;
|
|
11
|
+
this.environment = environment;
|
|
12
|
+
this.countriesSubject = new ReplaySubject(1);
|
|
13
|
+
}
|
|
14
|
+
getCountries() {
|
|
15
|
+
if (!this._countries) {
|
|
16
|
+
this.http.get(`${this.environment.apiV2}/countries`)
|
|
17
|
+
.pipe(map((response) => {
|
|
18
|
+
return response['hydra:member'].map((item) => plainToClass(Country, item));
|
|
19
|
+
}))
|
|
20
|
+
.subscribe((countries) => {
|
|
21
|
+
this._countries = countries;
|
|
22
|
+
this.countriesSubject.next(countries);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return this.countriesSubject.asObservable();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
AddressService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: AddressService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
29
|
+
AddressService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: AddressService, providedIn: 'root' });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: AddressService, decorators: [{
|
|
31
|
+
type: Injectable,
|
|
32
|
+
args: [{
|
|
33
|
+
providedIn: 'root'
|
|
34
|
+
}]
|
|
35
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
|
36
|
+
type: Inject,
|
|
37
|
+
args: ['environment']
|
|
38
|
+
}] }]; } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvYWRkcmVzcy9hZGRyZXNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBS2pELE1BQU0sT0FBTyxjQUFjO0lBSXpCLFlBQ1UsSUFBZ0IsRUFDTyxXQUFnQjtRQUR2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ08sZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFKakQscUJBQWdCLEdBQTZCLElBQUksYUFBYSxDQUFZLENBQUMsQ0FBQyxDQUFDO0lBS3pFLENBQUM7SUFFTCxZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssWUFBWSxDQUFDO2lCQUNqRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxFQUFFO2dCQUN2QixPQUFPLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNyRixDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLENBQUMsQ0FBQyxTQUFvQixFQUFFLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO2dCQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzs0R0F4QlUsY0FBYyw0Q0FNZixhQUFhO2dIQU5aLGNBQWMsY0FGYixNQUFNOzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb3VudHJ5IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2FkZHJlc3MvY291bnRyeSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFkZHJlc3NTZXJ2aWNlIHtcbiAgX2NvdW50cmllczogQ291bnRyeVtdO1xuICBjb3VudHJpZXNTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PENvdW50cnlbXT4gPSBuZXcgUmVwbGF5U3ViamVjdDxDb3VudHJ5W10+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueVxuICApIHsgfVxuXG4gIGdldENvdW50cmllcygpOiBPYnNlcnZhYmxlPENvdW50cnlbXT4ge1xuICAgIGlmICghdGhpcy5fY291bnRyaWVzKSB7XG4gICAgICB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2NvdW50cmllc2ApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlWydoeWRyYTptZW1iZXInXS5tYXAoKGl0ZW06IG9iamVjdCkgPT4gcGxhaW5Ub0NsYXNzKENvdW50cnksIGl0ZW0pKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGNvdW50cmllczogQ291bnRyeVtdKSA9PiB7XG4gICAgICAgICAgdGhpcy5fY291bnRyaWVzID0gY291bnRyaWVzO1xuICAgICAgICAgIHRoaXMuY291bnRyaWVzU3ViamVjdC5uZXh0KGNvdW50cmllcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNvdW50cmllc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import _ from 'lodash';
|
|
4
|
+
import { replace } from '../../../../functions/array';
|
|
5
|
+
import { plainToClass } from 'class-transformer';
|
|
6
|
+
import { RestService } from '../../rest/rest.service';
|
|
7
|
+
import { BankAccount } from '../../../../models/bank/bank-account';
|
|
8
|
+
import { AppEvent } from '../../../../models/event/app-event';
|
|
9
|
+
import { AppEventTypeEnum } from '../../../../models/event/app-event-type.enum';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common/http";
|
|
12
|
+
import * as i2 from "../../../event/event-dispatcher.service";
|
|
13
|
+
/**
|
|
14
|
+
* Service that handling user's bank accounts logic
|
|
15
|
+
*/
|
|
16
|
+
export class BankAccountService extends RestService {
|
|
17
|
+
constructor(http, eventDispatcherService, environment) {
|
|
18
|
+
super(http, eventDispatcherService, environment);
|
|
19
|
+
this.http = http;
|
|
20
|
+
this.eventDispatcherService = eventDispatcherService;
|
|
21
|
+
this.environment = environment;
|
|
22
|
+
// api url parameter for bank accounts
|
|
23
|
+
this.url = 'bank-accounts';
|
|
24
|
+
this.modelClass = BankAccount;
|
|
25
|
+
this.listenEvents();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Listen system notifications and update cache when got basiq notification received
|
|
29
|
+
*/
|
|
30
|
+
listenEvents() {
|
|
31
|
+
this.listenToEventDispatcherChanges();
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Created manual bank account
|
|
35
|
+
* @param bankAccounts
|
|
36
|
+
* @param queryParams
|
|
37
|
+
*/
|
|
38
|
+
addBatch(bankAccounts, queryParams = {}) {
|
|
39
|
+
return this.http.post(`${this.environment.apiV2}/${this.url}`, bankAccounts)
|
|
40
|
+
.pipe(map((newBankAccountsBase) => {
|
|
41
|
+
const newBankAccounts = newBankAccountsBase.map((bankAccountBase) => plainToClass(BankAccount, bankAccountBase));
|
|
42
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BANK_ACCOUNT_CREATED, newBankAccounts));
|
|
43
|
+
const tempCache = _.cloneDeep(this.cache);
|
|
44
|
+
tempCache.push(...newBankAccounts);
|
|
45
|
+
this.cache = tempCache;
|
|
46
|
+
this.updateCache();
|
|
47
|
+
return newBankAccounts;
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Update bank account and fire event
|
|
52
|
+
*/
|
|
53
|
+
update(bankAccount) {
|
|
54
|
+
return super.update(bankAccount).pipe(map((updatedBankAccount) => {
|
|
55
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BANK_ACCOUNT_UPDATED, updatedBankAccount));
|
|
56
|
+
return updatedBankAccount;
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Update bank account opening balance
|
|
61
|
+
* @param bankAccount Bank account for balance updating
|
|
62
|
+
*/
|
|
63
|
+
updateOpeningBalance(bankAccount) {
|
|
64
|
+
return this.http.put(`${this.environment.apiV2}/${this.url}/${bankAccount.id}/opening-balances/${bankAccount.getCurrentYearBalance().id}`, bankAccount.getCurrentYearBalance())
|
|
65
|
+
.pipe(map((response) => {
|
|
66
|
+
const tempCache = _.cloneDeep(this.cache);
|
|
67
|
+
replace(tempCache[tempCache.findIndex((ba) => ba.id === bankAccount.id)].balances, response);
|
|
68
|
+
this.cache = tempCache;
|
|
69
|
+
this.updateCache();
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Update bank account current balance
|
|
74
|
+
*/
|
|
75
|
+
updateCurrentBalance(bankAccount) {
|
|
76
|
+
return this.http.put(`${this.environment.apiV2}/${this.url}/${bankAccount.id}/balance`, bankAccount)
|
|
77
|
+
.pipe(map((response) => {
|
|
78
|
+
const updatedBankAccount = plainToClass(BankAccount, response);
|
|
79
|
+
replace(this.cache, updatedBankAccount);
|
|
80
|
+
this.updateCache();
|
|
81
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BANK_ACCOUNT_UPDATED, updatedBankAccount));
|
|
82
|
+
return updatedBankAccount;
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
getOwn() {
|
|
86
|
+
return this.get()
|
|
87
|
+
.pipe(map((bankAccounts) => {
|
|
88
|
+
return bankAccounts.filter((bankAccount) => bankAccount.isOwner(+localStorage.getItem('userId')));
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Listen to EventDispatcherService events
|
|
93
|
+
*/
|
|
94
|
+
listenToEventDispatcherChanges() {
|
|
95
|
+
this.eventDispatcherService.on([
|
|
96
|
+
AppEventTypeEnum.PROPERTY_SHARE_UPDATED,
|
|
97
|
+
AppEventTypeEnum.LOAN_PAYOUT_UPDATED,
|
|
98
|
+
AppEventTypeEnum.BANK_CONNECTION_ADDED
|
|
99
|
+
]).subscribe(() => {
|
|
100
|
+
this.fetch().subscribe((bankAccounts) => {
|
|
101
|
+
this.cache = bankAccounts;
|
|
102
|
+
this.updateCache();
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
BankAccountService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BankAccountService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
108
|
+
BankAccountService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BankAccountService, providedIn: 'root' });
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BankAccountService, decorators: [{
|
|
110
|
+
type: Injectable,
|
|
111
|
+
args: [{
|
|
112
|
+
providedIn: 'root'
|
|
113
|
+
}]
|
|
114
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
|
|
115
|
+
type: Inject,
|
|
116
|
+
args: ['environment']
|
|
117
|
+
}] }]; } });
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1hY2NvdW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9iYW5rL2JhbmstYWNjb3VudC9iYW5rLWFjY291bnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUlqRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUVqRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDNUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sOENBQThDLENBQUM7Ozs7QUFFOUU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBeUM7SUFLL0UsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0I7UUFFakQsS0FBSyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUp2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFQbkQsc0NBQXNDO1FBQ3RDLFFBQUcsR0FBVyxlQUFlLENBQUM7UUFDOUIsZUFBVSxHQUFHLFdBQVcsQ0FBQztRQVF2QixJQUFJLENBQUMsWUFB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Q0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0hBL0dVLGtCQUFrQixrRkFRbkIsYUFBYTtvSEFSWixrQkFBa0IsY0FGakIsTUFBTTs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0JhbmtBY2NvdW50IGFzIEJhbmtBY2NvdW50QmFzZX0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzL2JhbmstYWNjb3VudCc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7cmVwbGFjZX0gZnJvbSAnLi4vLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7cGxhaW5Ub0NsYXNzfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQge1Jlc3RTZXJ2aWNlfSBmcm9tICcuLi8uLi9yZXN0L3Jlc3Quc2VydmljZSc7XG5pbXBvcnQge0JhbmtBY2NvdW50fSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYmFuay9iYW5rLWFjY291bnQnO1xuaW1wb3J0IHtFdmVudERpc3BhdGNoZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtBcHBFdmVudH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudCc7XG5pbXBvcnQge0FwcEV2ZW50VHlwZUVudW19IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQtdHlwZS5lbnVtJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgaGFuZGxpbmcgdXNlcidzIGJhbmsgYWNjb3VudHMgbG9naWNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFua0FjY291bnRTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8QmFua0FjY291bnRCYXNlLCBCYW5rQWNjb3VudD4ge1xuICAvLyBhcGkgdXJsIHBhcmFtZXRlciBmb3IgYmFuayBhY2NvdW50c1xuICB1cmw6IHN0cmluZyA9ICdiYW5rLWFjY291bnRzJztcbiAgbW9kZWxDbGFzcyA9IEJhbmtBY2NvdW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnlcbiAgKSB7XG4gICAgc3VwZXIoaHR0cCwgZXZlbnREaXNwYXRjaGVyU2VydmljZSwgZW52aXJvbm1lbnQpO1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHN5c3RlbSBub3RpZmljYXRpb25zIGFuZCB1cGRhdGUgY2FjaGUgd2hlbiBnb3QgYmFzaXEgbm90aWZpY2F0aW9uIHJlY2VpdmVkXG4gICAqL1xuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5Ub0V2ZW50RGlzcGF0Y2hlckNoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVkIG1hbnVhbCBiYW5rIGFjY291bnRcbiAgICogQHBhcmFtIGJhbmtBY2NvdW50c1xuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXNcbiAgICovXG4gIGFkZEJhdGNoKGJhbmtBY2NvdW50czogQmFua0FjY291bnRbXSwgcXVlcnlQYXJhbXM6IG9iamVjdCA9IHt9KTogT2JzZXJ2YWJsZTxCYW5rQWNjb3VudFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgYmFua0FjY291bnRzKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgobmV3QmFua0FjY291bnRzQmFzZTogQmFua0FjY291bnRCYXNlW10pID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdCYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10gPSBuZXdCYW5rQWNjb3VudHNCYXNlLm1hcCgoYmFua0FjY291bnRCYXNlOiBCYW5rQWNjb3VudEJhc2UpOiBCYW5rQWNjb3VudCA9PiBwbGFpblRvQ2xhc3MoQmFua0FjY291bnQsIGJhbmtBY2NvdW50QmFzZSkpO1xuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5CQU5LX0FDQ09VTlRfQ1JFQVRFRCwgbmV3QmFua0FjY291bnRzKSk7XG4gICAgICAgICAgY29uc3QgdGVtcENhY2hlOiBCYW5rQWNjb3VudFtdID0gXy5jbG9uZURlZXAodGhpcy5jYWNoZSk7XG4gICAgICAgICAgdGVtcENhY2hlLnB1c2goLi4ubmV3QmFua0FjY291bnRzKTtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdGVtcENhY2hlO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gbmV3QmFua0FjY291bnRzO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYmFuayBhY2NvdW50IGFuZCBmaXJlIGV2ZW50XG4gICAqL1xuICB1cGRhdGUoYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KTogT2JzZXJ2YWJsZTxCYW5rQWNjb3VudD4ge1xuICAgIHJldHVybiBzdXBlci51cGRhdGUoYmFua0FjY291bnQpLnBpcGUoXG4gICAgICBtYXAoKHVwZGF0ZWRCYW5rQWNjb3VudDogQmFua0FjY291bnQpID0+IHtcbiAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkJBTktfQUNDT1VOVF9VUERBVEVELCB1cGRhdGVkQmFua0FjY291bnQpKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWRCYW5rQWNjb3VudDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYmFuayBhY2NvdW50IG9wZW5pbmcgYmFsYW5jZVxuICAgKiBAcGFyYW0gYmFua0FjY291bnQgQmFuayBhY2NvdW50IGZvciBiYWxhbmNlIHVwZGF0aW5nXG4gICAqL1xuICB1cGRhdGVPcGVuaW5nQmFsYW5jZShiYW5rQWNjb3VudDogQmFua0FjY291bnQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9LyR7YmFua0FjY291bnQuaWR9L29wZW5pbmctYmFsYW5jZXMvJHtiYW5rQWNjb3VudC5nZXRDdXJyZW50WWVhckJhbGFuY2UoKS5pZH1gLCBiYW5rQWNjb3VudC5nZXRDdXJyZW50WWVhckJhbGFuY2UoKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3QpID0+IHtcbiAgICAgICAgICBjb25zdCB0ZW1wQ2FjaGU6IEJhbmtBY2NvdW50W10gPSBfLmNsb25lRGVlcCh0aGlzLmNhY2hlKTtcblxuICAgICAgICAgIHJlcGxhY2UodGVtcENhY2hlW3RlbXBDYWNoZS5maW5kSW5kZXgoKGJhOiBCYW5rQWNjb3VudCkgPT4gYmEuaWQgPT09IGJhbmtBY2NvdW50LmlkKV0uYmFsYW5jZXMsIHJlc3BvbnNlKTtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdGVtcENhY2hlO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGJhbmsgYWNjb3VudCBjdXJyZW50IGJhbGFuY2VcbiAgICovXG4gIHVwZGF0ZUN1cnJlbnRCYWxhbmNlKGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCk6IE9ic2VydmFibGU8QmFua0FjY291bnQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke2JhbmtBY2NvdW50LmlkfS9iYWxhbmNlYCwgYmFua0FjY291bnQpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZEJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCA9IHBsYWluVG9DbGFzcyhCYW5rQWNjb3VudCwgcmVzcG9uc2UpO1xuXG4gICAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCB1cGRhdGVkQmFua0FjY291bnQpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcblxuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5CQU5LX0FDQ09VTlRfVVBEQVRFRCwgdXBkYXRlZEJhbmtBY2NvdW50KSk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRCYW5rQWNjb3VudDtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBnZXRPd24oKTogT2JzZXJ2YWJsZTxCYW5rQWNjb3VudFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGJhbmtBY2NvdW50czogQmFua0FjY291bnRbXSkgPT4ge1xuICAgICAgICAgIHJldHVybiBiYW5rQWNjb3VudHMuZmlsdGVyKChiYW5rQWNjb3VudDogQmFua0FjY291bnQpID0+IGJhbmtBY2NvdW50LmlzT3duZXIoK2xvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VySWQnKSkpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gRXZlbnREaXNwYXRjaGVyU2VydmljZSBldmVudHNcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9FdmVudERpc3BhdGNoZXJDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihbXG4gICAgICBBcHBFdmVudFR5cGVFbnVtLlBST1BFUlRZX1NIQVJFX1VQREFURUQsXG4gICAgICBBcHBFdmVudFR5cGVFbnVtLkxPQU5fUEFZT1VUX1VQREFURUQsXG4gICAgICBBcHBFdmVudFR5cGVFbnVtLkJBTktfQ09OTkVDVElPTl9BRERFRFxuICAgIF0pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZldGNoKCkuc3Vic2NyaWJlKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10pID0+IHtcbiAgICAgICAgdGhpcy5jYWNoZSA9IGJhbmtBY2NvdW50cztcbiAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import { plainToClass } from 'class-transformer';
|
|
4
|
+
import { BankConnection } from '../../../../models/bank/bank-connection';
|
|
5
|
+
import { RestService } from '../../rest/rest.service';
|
|
6
|
+
import { AppEvent } from '../../../../models/event/app-event';
|
|
7
|
+
import { AppEventTypeEnum } from '../../../../models/event/app-event-type.enum';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/common/http";
|
|
10
|
+
import * as i2 from "../../../event/event-dispatcher.service";
|
|
11
|
+
/**
|
|
12
|
+
* BankConnection means user account at specific bank (usually each user has only one at the same bank)
|
|
13
|
+
* service handles BankConnection management
|
|
14
|
+
*/
|
|
15
|
+
export class BankConnectionService extends RestService {
|
|
16
|
+
constructor(http, eventDispatcherService, environment) {
|
|
17
|
+
super(http, eventDispatcherService, environment);
|
|
18
|
+
this.http = http;
|
|
19
|
+
this.eventDispatcherService = eventDispatcherService;
|
|
20
|
+
this.environment = environment;
|
|
21
|
+
this.modelClass = BankConnection;
|
|
22
|
+
this.url = 'bank-connections';
|
|
23
|
+
this.listenEvents();
|
|
24
|
+
}
|
|
25
|
+
listenEvents() {
|
|
26
|
+
this.listenToAddedBankAccounts();
|
|
27
|
+
}
|
|
28
|
+
post(bankConnection) {
|
|
29
|
+
return this.http.post(`${this.environment.apiV2}/${this.url}`, bankConnection)
|
|
30
|
+
.pipe(map((bankConnectionBase) => {
|
|
31
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BANK_CONNECTION_ADDED, null));
|
|
32
|
+
return plainToClass(BankConnection, bankConnectionBase);
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
listenToAddedBankAccounts() {
|
|
36
|
+
this.eventDispatcherService.on(AppEventTypeEnum.BANK_ACCOUNT_CREATED).subscribe(() => {
|
|
37
|
+
this.resetCache();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
BankConnectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BankConnectionService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
42
|
+
BankConnectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BankConnectionService, providedIn: 'root' });
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BankConnectionService, decorators: [{
|
|
44
|
+
type: Injectable,
|
|
45
|
+
args: [{
|
|
46
|
+
providedIn: 'root'
|
|
47
|
+
}]
|
|
48
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
|
|
49
|
+
type: Inject,
|
|
50
|
+
args: ['environment']
|
|
51
|
+
}] }]; } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1jb25uZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9iYW5rL2JhbmstY29ubmVjdGlvbi9iYW5rLWNvbm5lY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7O0FBRWhGOzs7R0FHRztBQUlILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxXQUErQztJQUl4RixZQUNZLElBQWdCLEVBQ2hCLHNCQUE4QyxFQUN2QixXQUFnQjtRQUVqRCxLQUFLLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBSnZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQU5uRCxlQUFVLEdBQUcsY0FBYyxDQUFDO1FBQzVCLFFBQUcsR0FBVyxrQkFBa0IsQ0FBQztRQVEvQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxDQUFDLGNBQThCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsY0FBYyxDQUFDO2FBQzNFLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxrQkFBc0MsRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUVqRyxPQUFPLFlBQVksQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELHlCQUF5QjtRQUN2QixJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNuRixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzttSEFoQ1UscUJBQXFCLGtGQU90QixhQUFhO3VIQVBaLHFCQUFxQixjQUZwQixNQUFNOzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVFJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhbmtDb25uZWN0aW9uIGFzIEJhbmtDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy9iYW5rLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBCYW5rQ29ubmVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9iYW5rL2JhbmstY29ubmVjdGlvbic7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QvcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudCc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuXG4vKipcbiAqIEJhbmtDb25uZWN0aW9uIG1lYW5zIHVzZXIgYWNjb3VudCBhdCBzcGVjaWZpYyBiYW5rICh1c3VhbGx5IGVhY2ggdXNlciBoYXMgb25seSBvbmUgYXQgdGhlIHNhbWUgYmFuaylcbiAqIHNlcnZpY2UgaGFuZGxlcyBCYW5rQ29ubmVjdGlvbiBtYW5hZ2VtZW50XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJhbmtDb25uZWN0aW9uU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPEJhbmtDb25uZWN0aW9uQmFzZSwgQmFua0Nvbm5lY3Rpb24+IHtcbiAgbW9kZWxDbGFzcyA9IEJhbmtDb25uZWN0aW9uO1xuICB1cmw6IHN0cmluZyA9ICdiYW5rLWNvbm5lY3Rpb25zJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICAgIHN1cGVyKGh0dHAsIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIGVudmlyb25tZW50KTtcbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuVG9BZGRlZEJhbmtBY2NvdW50cygpO1xuICB9XG5cbiAgcG9zdChiYW5rQ29ubmVjdGlvbjogQmFua0Nvbm5lY3Rpb24pOiBPYnNlcnZhYmxlPEJhbmtDb25uZWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgYmFua0Nvbm5lY3Rpb24pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChiYW5rQ29ubmVjdGlvbkJhc2U6IEJhbmtDb25uZWN0aW9uQmFzZSkgPT4ge1xuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5CQU5LX0NPTk5FQ1RJT05fQURERUQsIG51bGwpKTtcblxuICAgICAgICAgIHJldHVybiBwbGFpblRvQ2xhc3MoQmFua0Nvbm5lY3Rpb24sIGJhbmtDb25uZWN0aW9uQmFzZSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgbGlzdGVuVG9BZGRlZEJhbmtBY2NvdW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5CQU5LX0FDQ09VTlRfQ1JFQVRFRCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRDYWNoZSgpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import { RestService } from '../../rest/rest.service';
|
|
4
|
+
import { plainToClass } from 'class-transformer';
|
|
5
|
+
import { UserEventTypeClientTypeEnum } from '../../../../db/Enums/user-event-type-client-type.enum';
|
|
6
|
+
import { BankTransaction } from '../../../../models/bank/bank-transaction';
|
|
7
|
+
import { FinancialYear } from '../../../../models/financial-year/financial-year';
|
|
8
|
+
import { AppEventTypeEnum } from '../../../../models/event/app-event-type.enum';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common/http";
|
|
11
|
+
import * as i2 from "../../../event/event-dispatcher.service";
|
|
12
|
+
/**
|
|
13
|
+
* Service for bank transactions business logic
|
|
14
|
+
*/
|
|
15
|
+
export class BankTransactionService extends RestService {
|
|
16
|
+
constructor(http, eventDispatcherService, environment) {
|
|
17
|
+
super(http, eventDispatcherService, environment);
|
|
18
|
+
this.http = http;
|
|
19
|
+
this.eventDispatcherService = eventDispatcherService;
|
|
20
|
+
this.environment = environment;
|
|
21
|
+
// url part for BankTransaction API
|
|
22
|
+
this.url = 'bank-transactions';
|
|
23
|
+
this.modelClass = BankTransaction;
|
|
24
|
+
this.listenEvents();
|
|
25
|
+
}
|
|
26
|
+
listenEvents() {
|
|
27
|
+
this.listenBankTransactionsImport();
|
|
28
|
+
}
|
|
29
|
+
;
|
|
30
|
+
/**
|
|
31
|
+
* get list of bank transactions for passed bank account id
|
|
32
|
+
* @param bankAccountId Id of bank account we search bank transactions for
|
|
33
|
+
*/
|
|
34
|
+
getByBankAccountId(bankAccountId) {
|
|
35
|
+
return this.get()
|
|
36
|
+
.pipe(map((bankTransactions) => {
|
|
37
|
+
return bankTransactions.filter((bankTransaction) => bankTransaction.bankAccount.id === bankAccountId);
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get list of bank transactions for provided financial year
|
|
42
|
+
* @TODO VIK/Alex: consider to use one endpoint to get bank transactions for 2 fin years
|
|
43
|
+
*/
|
|
44
|
+
getTransactionsByYear(finYear) {
|
|
45
|
+
return this.http.get(`${this.environment.apiV2}/bank-transactions?financialYear=${finYear}`)
|
|
46
|
+
.pipe(map((bankTransactionsBase) => {
|
|
47
|
+
return bankTransactionsBase.map((bankTransaction) => plainToClass(BankTransaction, bankTransaction));
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* import bank transactions from csv file
|
|
52
|
+
* @param bankAccountId Bank account id we import bank transactions for
|
|
53
|
+
* @param file File with bank transactions for import
|
|
54
|
+
*/
|
|
55
|
+
import(bankAccountId, file) {
|
|
56
|
+
const formData = new FormData();
|
|
57
|
+
formData.append('file', file);
|
|
58
|
+
return this.http.post(`${this.environment.apiV2}/bank-accounts/${bankAccountId}/bank-transaction-imports`, formData)
|
|
59
|
+
.pipe(map((response) => {
|
|
60
|
+
const newBankTransactions = response.map((bankTransaction) => plainToClass(BankTransaction, bankTransaction));
|
|
61
|
+
// push new items to cache only if we already have cache. Otherwise cache will contain only new items.
|
|
62
|
+
if (this.cache) {
|
|
63
|
+
// just current year's transactions should be added
|
|
64
|
+
this.cache.push(...newBankTransactions.filter((bt) => new FinancialYear().includes(bt.date)));
|
|
65
|
+
this.updateCache();
|
|
66
|
+
}
|
|
67
|
+
return newBankTransactions;
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
listenBankTransactionsImport() {
|
|
71
|
+
this.eventDispatcherService.on(AppEventTypeEnum.NOTIFICATION_ADDED).subscribe((notification) => {
|
|
72
|
+
if (!notification.isRead && notification.eventType === UserEventTypeClientTypeEnum.BASIQ_FIRST_IMPORT_COMPLETE) {
|
|
73
|
+
this.resetCache();
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
BankTransactionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BankTransactionService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
79
|
+
BankTransactionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BankTransactionService, providedIn: 'root' });
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BankTransactionService, decorators: [{
|
|
81
|
+
type: Injectable,
|
|
82
|
+
args: [{
|
|
83
|
+
providedIn: 'root'
|
|
84
|
+
}]
|
|
85
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
|
|
86
|
+
type: Inject,
|
|
87
|
+
args: ['environment']
|
|
88
|
+
}] }]; } });
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay10cmFuc2FjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvYmFuay9iYW5rLXRyYW5zYWN0aW9uL2JhbmstdHJhbnNhY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7O0FBR2hGOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFdBQWlEO0lBSzNGLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCO1FBRWpELEtBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFKdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBUG5ELG1DQUFtQztRQUNuQyxRQUFHLEdBQVcsbUJBQW1CLENBQUM7UUFDbEMsZUFBVSxHQUFHLGVBQWUsQ0FBQztRQVEzQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFD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ZSc7XG5pbXBvcnQgeyBCYW5rVHJhbnNhY3Rpb24gYXMgQmFua1RyYW5zYWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy9iYW5rLXRyYW5zYWN0aW9uJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFVzZXJFdmVudFR5cGVDbGllbnRUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL0VudW1zL3VzZXItZXZlbnQtdHlwZS1jbGllbnQtdHlwZS5lbnVtJztcbmltcG9ydCB7IEJhbmtUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9iYW5rL2JhbmstdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBGaW5hbmNpYWxZZWFyIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpbmFuY2lhbC15ZWFyL2ZpbmFuY2lhbC15ZWFyJztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbic7XG5cbi8qKlxuICogU2VydmljZSBmb3IgYmFuayB0cmFuc2FjdGlvbnMgYnVzaW5lc3MgbG9naWNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFua1RyYW5zYWN0aW9uU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPEJhbmtUcmFuc2FjdGlvbkJhc2UsIEJhbmtUcmFuc2FjdGlvbj4ge1xuICAvLyB1cmwgcGFydCBmb3IgQmFua1RyYW5zYWN0aW9uIEFQSVxuICB1cmw6IHN0cmluZyA9ICdiYW5rLXRyYW5zYWN0aW9ucyc7XG4gIG1vZGVsQ2xhc3MgPSBCYW5rVHJhbnNhY3Rpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueVxuICApIHtcbiAgICBzdXBlcihodHRwLCBldmVudERpc3BhdGNoZXJTZXJ2aWNlLCBlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuQmFua1RyYW5zYWN0aW9uc0ltcG9ydCgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBnZXQgbGlzdCBvZiBiYW5rIHRyYW5zYWN0aW9ucyBmb3IgcGFzc2VkIGJhbmsgYWNjb3VudCBpZFxuICAgKiBAcGFyYW0gYmFua0FjY291bnRJZCBJZCBvZiBiYW5rIGFjY291bnQgd2Ugc2VhcmNoIGJhbmsgdHJhbnNhY3Rpb25zIGZvclxuICAgKi9cbiAgZ2V0QnlCYW5rQWNjb3VudElkKGJhbmtBY2NvdW50SWQ6IG51bWJlcik6IE9ic2VydmFibGU8QmFua1RyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoYmFua1RyYW5zYWN0aW9uczogQmFua1RyYW5zYWN0aW9uW10pID0+IHtcbiAgICAgICAgICByZXR1cm4gYmFua1RyYW5zYWN0aW9ucy5maWx0ZXIoKGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uKSA9PiBiYW5rVHJhbnNhY3Rpb24uYmFua0FjY291bnQuaWQgPT09IGJhbmtBY2NvdW50SWQpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGlzdCBvZiBiYW5rIHRyYW5zYWN0aW9ucyBmb3IgcHJvdmlkZWQgZmluYW5jaWFsIHllYXJcbiAgICogQFRPRE8gVklLL0FsZXg6IGNvbnNpZGVyIHRvIHVzZSBvbmUgZW5kcG9pbnQgdG8gZ2V0IGJhbmsgdHJhbnNhY3Rpb25zIGZvciAyIGZpbiB5ZWFyc1xuICAgKi9cbiAgZ2V0VHJhbnNhY3Rpb25zQnlZZWFyKGZpblllYXI6IG51bWJlcik6IE9ic2VydmFibGU8QmFua1RyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9iYW5rLXRyYW5zYWN0aW9ucz9maW5hbmNpYWxZZWFyPSR7ZmluWWVhcn1gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoYmFua1RyYW5zYWN0aW9uc0Jhc2U6IEJhbmtUcmFuc2FjdGlvbkJhc2VbXSkgPT4ge1xuICAgICAgICAgIHJldHVybiBiYW5rVHJhbnNhY3Rpb25zQmFzZS5tYXAoKGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uKSA9PiBwbGFpblRvQ2xhc3MoQmFua1RyYW5zYWN0aW9uLCBiYW5rVHJhbnNhY3Rpb24pKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogaW1wb3J0IGJhbmsgdHJhbnNhY3Rpb25zIGZyb20gY3N2IGZpbGVcbiAgICogQHBhcmFtIGJhbmtBY2NvdW50SWQgQmFuayBhY2NvdW50IGlkIHdlIGltcG9ydCBiYW5rIHRyYW5zYWN0aW9ucyBmb3JcbiAgICogQHBhcmFtIGZpbGUgRmlsZSB3aXRoIGJhbmsgdHJhbnNhY3Rpb25zIGZvciBpbXBvcnRcbiAgICovXG4gIGltcG9ydChiYW5rQWNjb3VudElkOiBudW1iZXIsIGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPEJhbmtUcmFuc2FjdGlvbltdPiB7XG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vYmFuay1hY2NvdW50cy8ke2JhbmtBY2NvdW50SWR9L2JhbmstdHJhbnNhY3Rpb24taW1wb3J0c2AsIGZvcm1EYXRhKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IEJhbmtUcmFuc2FjdGlvbkJhc2VbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld0JhbmtUcmFuc2FjdGlvbnM6IEJhbmtUcmFuc2FjdGlvbltdID0gcmVzcG9uc2UubWFwKChiYW5rVHJhbnNhY3Rpb246IEJhbmtUcmFuc2FjdGlvbkJhc2UpID0+IHBsYWluVG9DbGFzcyhCYW5rVHJhbnNhY3Rpb24sIGJhbmtUcmFuc2FjdGlvbikpO1xuICAgICAgICAgIC8vIHB1c2ggbmV3IGl0ZW1zIHRvIGNhY2hlIG9ubHkgaWYgd2UgYWxyZWFkeSBoYXZlIGNhY2hlLiBPdGhlcndpc2UgY2FjaGUgd2lsbCBjb250YWluIG9ubHkgbmV3IGl0ZW1zLlxuICAgICAgICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICAgICAgICAvLyBqdXN0IGN1cnJlbnQgeWVhcidzIHRyYW5zYWN0aW9ucyBzaG91bGQgYmUgYWRkZWRcbiAgICAgICAgICAgIHRoaXMuY2FjaGUucHVzaCguLi5uZXdCYW5rVHJhbnNhY3Rpb25zLmZpbHRlcigoYnQ6IEJhbmtUcmFuc2FjdGlvbikgPT4gbmV3IEZpbmFuY2lhbFllYXIoKS5pbmNsdWRlcyhidC5kYXRlKSkpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXdCYW5rVHJhbnNhY3Rpb25zO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuQmFua1RyYW5zYWN0aW9uc0ltcG9ydCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5OT1RJRklDQVRJT05fQURERUQpLnN1YnNjcmliZSgobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHtcbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmlzUmVhZCAmJiBub3RpZmljYXRpb24uZXZlbnRUeXBlID09PSBVc2VyRXZlbnRUeXBlQ2xpZW50VHlwZUVudW0uQkFTSVFfRklSU1RfSU1QT1JUX0NPTVBMRVRFKSB7XG4gICAgICAgIHRoaXMucmVzZXRDYWNoZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Bank } from '../../../models/bank/bank';
|
|
3
|
+
import { RestService } from '../rest/rest.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Service that handling banks logic
|
|
7
|
+
*/
|
|
8
|
+
export class BankService extends RestService {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.modelClass = Bank;
|
|
12
|
+
this.url = 'banks';
|
|
13
|
+
this.isHydra = true;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
BankService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BankService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
17
|
+
BankService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BankService, providedIn: 'root' });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BankService, decorators: [{
|
|
19
|
+
type: Injectable,
|
|
20
|
+
args: [{
|
|
21
|
+
providedIn: 'root'
|
|
22
|
+
}]
|
|
23
|
+
}] });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvYmFuay9iYW5rLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUVuRDs7R0FFRztBQUlILE1BQU0sT0FBTyxXQUFZLFNBQVEsV0FBMkI7SUFINUQ7O1FBSUUsZUFBVSxHQUFnQixJQUFJLENBQUM7UUFDL0IsUUFBRyxHQUFXLE9BQU8sQ0FBQztRQUN0QixZQUFPLEdBQVksSUFBSSxDQUFDO0tBQ3pCOzt5R0FKWSxXQUFXOzZHQUFYLFdBQVcsY0FGVixNQUFNOzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFuayBhcyBCYW5rQmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscy9iYW5rJztcbmltcG9ydCB7IEJhbmsgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvYmFuay9iYW5rJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBoYW5kbGluZyBiYW5rcyBsb2dpY1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCYW5rU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPEJhbmtCYXNlLCBCYW5rPiB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBCYW5rID0gQmFuaztcbiAgdXJsOiBzdHJpbmcgPSAnYmFua3MnO1xuICBpc0h5ZHJhOiBib29sZWFuID0gdHJ1ZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { ReplaySubject } from 'rxjs';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import { UserEventTypeClientTypeEnum } from '../../../../db/Enums/user-event-type-client-type.enum';
|
|
5
|
+
import { RestService } from '../../rest/rest.service';
|
|
6
|
+
import { BankAccount } from '../../../../models/bank/bank-account';
|
|
7
|
+
import { BasiqToken } from '../../../../models/bank/basiq-token';
|
|
8
|
+
import { AppEventTypeEnum } from '../../../../models/event/app-event-type.enum';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common/http";
|
|
11
|
+
import * as i2 from "../../../event/event-dispatcher.service";
|
|
12
|
+
/**
|
|
13
|
+
* basiq is a middleman between bank and user
|
|
14
|
+
* service is responsible for fetching bank related information
|
|
15
|
+
*/
|
|
16
|
+
export class BasiqService extends RestService {
|
|
17
|
+
constructor(http, eventDispatcherService, environment) {
|
|
18
|
+
super(http, eventDispatcherService, environment);
|
|
19
|
+
this.http = http;
|
|
20
|
+
this.eventDispatcherService = eventDispatcherService;
|
|
21
|
+
this.environment = environment;
|
|
22
|
+
this.tokenSubject = new ReplaySubject();
|
|
23
|
+
this.url = 'basiq/accounts';
|
|
24
|
+
this.modelClass = BankAccount;
|
|
25
|
+
this.listenEvents();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Listen events from Event Dispatcher service
|
|
29
|
+
*/
|
|
30
|
+
listenEvents() {
|
|
31
|
+
this.listenToBankConnectionAdded();
|
|
32
|
+
this.listenNotifications();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* access token to use basiq connect ui iframe
|
|
36
|
+
*/
|
|
37
|
+
getToken() {
|
|
38
|
+
if (!this.token || this.token.isExpired()) {
|
|
39
|
+
this.http.get(`${this.environment.apiV2}/basiq/tokens`)
|
|
40
|
+
.pipe(map((response) => {
|
|
41
|
+
const now = new Date().getTime();
|
|
42
|
+
return new BasiqToken(response['access_token'], new Date(now + response['expires_in'] * 1000));
|
|
43
|
+
}))
|
|
44
|
+
.subscribe((token) => {
|
|
45
|
+
this.tokenSubject.next(token);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return this.tokenSubject.asObservable();
|
|
49
|
+
}
|
|
50
|
+
getConnections() {
|
|
51
|
+
return this.get().pipe(map((bankAccounts) => {
|
|
52
|
+
// get all connections
|
|
53
|
+
const connections = bankAccounts.map((bankAccount) => {
|
|
54
|
+
return bankAccount.bankConnection;
|
|
55
|
+
});
|
|
56
|
+
// return without duplicates
|
|
57
|
+
return [...new Map(connections.map((connection) => [connection.id, connection])).values()];
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Listen to EventDispatcherService event related to added Bank connection
|
|
62
|
+
*/
|
|
63
|
+
listenToBankConnectionAdded() {
|
|
64
|
+
this.eventDispatcherService.on(AppEventTypeEnum.BANK_CONNECTION_ADDED).subscribe(() => {
|
|
65
|
+
this.fetch().subscribe((bankAccounts) => {
|
|
66
|
+
this.cache = bankAccounts;
|
|
67
|
+
this.updateCache();
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* listen to notifications to update basiq accounts list
|
|
73
|
+
*/
|
|
74
|
+
listenNotifications() {
|
|
75
|
+
this.eventDispatcherService.on(AppEventTypeEnum.NOTIFICATION_ADDED).subscribe((notification) => {
|
|
76
|
+
if (!notification.isRead && notification.eventType === UserEventTypeClientTypeEnum.BASIQ_NEW_ACCOUNTS) {
|
|
77
|
+
this.resetCache();
|
|
78
|
+
this.get().subscribe();
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
BasiqService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
84
|
+
BasiqService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqService, providedIn: 'root' });
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqService, decorators: [{
|
|
86
|
+
type: Injectable,
|
|
87
|
+
args: [{
|
|
88
|
+
providedIn: 'root'
|
|
89
|
+
}]
|
|
90
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
|
|
91
|
+
type: Inject,
|
|
92
|
+
args: ['environment']
|
|
93
|
+
}] }]; } });
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7OztBQUloRjs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sWUFBYSxTQUFRLFdBQXlDO0lBTXpFLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCO1FBRWpELEtBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFKdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBUG5ELGlCQUFZLEdBQThCLElBQUksYUFBYSxFQUFjLENBQUM7UUFDMUUsUUFBRyxHQUFXLGdCQUFnQixDQUFDO1FBQy9CLGVBQVUsR0FBRyxXQUFXLENBQUM7UUFRdkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFF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QkFDbkI7OzBCQVVJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhbmtBY2NvdW50IGFzIEJhbmtBY2NvdW50QmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy9iYW5rLWFjY291bnQnO1xuaW1wb3J0IHsgVXNlckV2ZW50VHlwZUNsaWVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvRW51bXMvdXNlci1ldmVudC10eXBlLWNsaWVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXN0L3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9iYW5rL2JhbmstYWNjb3VudCc7XG5pbXBvcnQgeyBCYXNpcVRva2VuIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFzaXEtdG9rZW4nO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQmFua0Nvbm5lY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYmFuay9iYW5rLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24nO1xuXG4vKipcbiAqIGJhc2lxIGlzIGEgbWlkZGxlbWFuIGJldHdlZW4gYmFuayBhbmQgdXNlclxuICogc2VydmljZSBpcyByZXNwb25zaWJsZSBmb3IgZmV0Y2hpbmcgYmFuayByZWxhdGVkIGluZm9ybWF0aW9uXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJhc2lxU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPEJhbmtBY2NvdW50QmFzZSwgQmFua0FjY291bnQ+IHtcbiAgdG9rZW46IEJhc2lxVG9rZW47XG4gIHRva2VuU3ViamVjdDogUmVwbGF5U3ViamVjdDxCYXNpcVRva2VuPiA9IG5ldyBSZXBsYXlTdWJqZWN0PEJhc2lxVG9rZW4+KCk7XG4gIHVybDogc3RyaW5nID0gJ2Jhc2lxL2FjY291bnRzJztcbiAgbW9kZWxDbGFzcyA9IEJhbmtBY2NvdW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnlcbiAgKSB7XG4gICAgc3VwZXIoaHR0cCwgZXZlbnREaXNwYXRjaGVyU2VydmljZSwgZW52aXJvbm1lbnQpO1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGV2ZW50cyBmcm9tIEV2ZW50IERpc3BhdGNoZXIgc2VydmljZVxuICAgKi9cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuVG9CYW5rQ29ubmVjdGlvbkFkZGVkKCk7XG4gICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4gIH1cblxuICAvKipcbiAgICogYWNjZXNzIHRva2VuIHRvIHVzZSBiYXNpcSBjb25uZWN0IHVpIGlmcmFtZVxuICAgKi9cbiAgZ2V0VG9rZW4oKTogT2JzZXJ2YWJsZTxCYXNpcVRva2VuPiB7XG4gICAgaWYgKCF0aGlzLnRva2VuIHx8IHRoaXMudG9rZW4uaXNFeHBpcmVkKCkpIHtcbiAgICAgIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vYmFzaXEvdG9rZW5zYClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBub3c6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG4gICAgICAgICAgICByZXR1cm4gbmV3IEJhc2lxVG9rZW4ocmVzcG9uc2VbJ2FjY2Vzc190b2tlbiddLCBuZXcgRGF0ZShub3cgKyByZXNwb25zZVsnZXhwaXJlc19pbiddICogMTAwMCkpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgodG9rZW46IEJhc2lxVG9rZW4pID0+IHtcbiAgICAgICAgICB0aGlzLnRva2VuU3ViamVjdC5uZXh0KHRva2VuKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudG9rZW5TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0Q29ubmVjdGlvbnMoKTogT2JzZXJ2YWJsZTxCYW5rQ29ubmVjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCkucGlwZShcbiAgICAgIG1hcCgoYmFua0FjY291bnRzOiBCYW5rQWNjb3VudFtdKSA9PiB7XG4gICAgICAgIC8vIGdldCBhbGwgY29ubmVjdGlvbnNcbiAgICAgICAgY29uc3QgY29ubmVjdGlvbnM6IEJhbmtDb25uZWN0aW9uW10gPSBiYW5rQWNjb3VudHMubWFwKChiYW5rQWNjb3VudDogQmFua0FjY291bnQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYmFua0FjY291bnQuYmFua0Nvbm5lY3Rpb247XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHJldHVybiB3aXRob3V0IGR1cGxpY2F0ZXNcbiAgICAgICAgcmV0dXJuIFsuLi5uZXcgTWFwKGNvbm5lY3Rpb25zLm1hcCgoY29ubmVjdGlvbjogQmFua0Nvbm5lY3Rpb24pID0+IFtjb25uZWN0aW9uLmlkLCBjb25uZWN0aW9uXSkpLnZhbHVlcygpXTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gRXZlbnREaXNwYXRjaGVyU2VydmljZSBldmVudCByZWxhdGVkIHRvIGFkZGVkIEJhbmsgY29ubmVjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Ub0JhbmtDb25uZWN0aW9uQWRkZWQoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uQkFOS19DT05ORUNUSU9OX0FEREVEKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5mZXRjaCgpLnN1YnNjcmliZSgoYmFua0FjY291bnRzOiBCYW5rQWNjb3VudFtdKSA9PiB7XG4gICAgICAgIHRoaXMuY2FjaGUgPSBiYW5rQWNjb3VudHM7XG4gICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGxpc3RlbiB0byBub3RpZmljYXRpb25zIHRvIHVwZGF0ZSBiYXNpcSBhY2NvdW50cyBsaXN0XG4gICAqL1xuICBwcml2YXRlIGxpc3Rlbk5vdGlmaWNhdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uTk9USUZJQ0FUSU9OX0FEREVEKS5zdWJzY3JpYmUoKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKTogdm9pZCA9PiB7XG4gICAgICBpZiAoIW5vdGlmaWNhdGlvbi5pc1JlYWQgJiYgbm90aWZpY2F0aW9uLmV2ZW50VHlwZSA9PT0gVXNlckV2ZW50VHlwZUNsaWVudFR5cGVFbnVtLkJBU0lRX05FV19BQ0NPVU5UUykge1xuICAgICAgICB0aGlzLnJlc2V0Q2FjaGUoKTtcbiAgICAgICAgdGhpcy5nZXQoKS5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { RestService } from '../../rest/rest.service';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import { ChartAccountsDepreciation } from '../../../../models/chart-accounts/chart-accounts-depreciation';
|
|
5
|
+
import { FinancialYear } from '../../../../models/financial-year/financial-year';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Service to work with depreciation chart accounts
|
|
9
|
+
*/
|
|
10
|
+
export class ChartAccountsDepreciationService extends RestService {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.url = 'chart-accounts-depreciations';
|
|
14
|
+
this.modelClass = ChartAccountsDepreciation;
|
|
15
|
+
this.isHydra = true;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get depreciation chart accounts for current financial year
|
|
19
|
+
*/
|
|
20
|
+
getCurrent() {
|
|
21
|
+
return this.get()
|
|
22
|
+
.pipe(map((chartAccountsDepreciations) => {
|
|
23
|
+
return chartAccountsDepreciations
|
|
24
|
+
.find((chartAccountsDepreciation) => {
|
|
25
|
+
return chartAccountsDepreciation.effectiveYear === new FinancialYear().year;
|
|
26
|
+
});
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
ChartAccountsDepreciationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ChartAccountsDepreciationService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
31
|
+
ChartAccountsDepreciationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ChartAccountsDepreciationService, providedIn: 'root' });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ChartAccountsDepreciationService, decorators: [{
|
|
33
|
+
type: Injectable,
|
|
34
|
+
args: [{
|
|
35
|
+
providedIn: 'root'
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMtZGVwcmVjaWF0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtZGVwcmVjaWF0aW9ucy9jaGFydC1hY2NvdW50cy1kZXByZWNpYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7QUFFakY7O0dBRUc7QUFJSCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsV0FBcUU7SUFIM0g7O1FBSUUsUUFBRyxHQUFXLDhCQUE4QixDQUFDO1FBQzdDLGVBQVUsR0FBcUMseUJBQXlCLENBQUM7UUFDekUsWUFBTyxHQUFZLElBQUksQ0FBQztLQWdCekI7SUFkQzs7T0FFRztJQUNILFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUU7YUFDZCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsMEJBQXVELEVBQUUsRUFBRTtZQUM5RCxPQUFPLDBCQUEwQjtpQkFDOUIsSUFBSSxDQUFDLENBQUMseUJBQW9ELEVBQVcsRUFBRTtnQkFDdEUsT0FBTyx5QkFBeUIsQ0FBQyxhQUFhLEtBQUssSUFBSSxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDOUUsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzs7OEhBbEJVLGdDQUFnQztrSUFBaEMsZ0NBQWdDLGNBRi9CLE1BQU07NEZBRVAsZ0NBQWdDO2tCQUg1QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0RlcHJlY2lhdGlvbiBhcyBDaGFydEFjY291bnRzRGVwcmVjaWF0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy9jaGFydC1hY2NvdW50cy1kZXByZWNpYXRpb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0RlcHJlY2lhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9jaGFydC1hY2NvdW50cy9jaGFydC1hY2NvdW50cy1kZXByZWNpYXRpb24nO1xuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maW5hbmNpYWwteWVhci9maW5hbmNpYWwteWVhcic7XG5cbi8qKlxuICogU2VydmljZSB0byB3b3JrIHdpdGggZGVwcmVjaWF0aW9uIGNoYXJ0IGFjY291bnRzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0QWNjb3VudHNEZXByZWNpYXRpb25TZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8Q2hhcnRBY2NvdW50c0RlcHJlY2lhdGlvbkJhc2UsIENoYXJ0QWNjb3VudHNEZXByZWNpYXRpb24+IHtcbiAgdXJsOiBzdHJpbmcgPSAnY2hhcnQtYWNjb3VudHMtZGVwcmVjaWF0aW9ucyc7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBDaGFydEFjY291bnRzRGVwcmVjaWF0aW9uID0gQ2hhcnRBY2NvdW50c0RlcHJlY2lhdGlvbjtcbiAgaXNIeWRyYTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEdldCBkZXByZWNpYXRpb24gY2hhcnQgYWNjb3VudHMgZm9yIGN1cnJlbnQgZmluYW5jaWFsIHllYXJcbiAgICovXG4gIGdldEN1cnJlbnQoKTogT2JzZXJ2YWJsZTxDaGFydEFjY291bnRzRGVwcmVjaWF0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGNoYXJ0QWNjb3VudHNEZXByZWNpYXRpb25zOiBDaGFydEFjY291bnRzRGVwcmVjaWF0aW9uW10pID0+IHtcbiAgICAgICAgICByZXR1cm4gY2hhcnRBY2NvdW50c0RlcHJlY2lhdGlvbnNcbiAgICAgICAgICAgIC5maW5kKChjaGFydEFjY291bnRzRGVwcmVjaWF0aW9uOiBDaGFydEFjY291bnRzRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGFydEFjY291bnRzRGVwcmVjaWF0aW9uLmVmZmVjdGl2ZVllYXIgPT09IG5ldyBGaW5hbmNpYWxZZWFyKCkueWVhcjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxufVxuIl19
|