taxtank-core 0.33.41 → 0.33.42
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.
@@ -2,7 +2,7 @@ import { Inject, Injectable } from '@angular/core';
|
|
2
2
|
import { ReplaySubject } from 'rxjs';
|
3
3
|
import { map } from 'rxjs/operators';
|
4
4
|
import { plainToClass } from 'class-transformer';
|
5
|
-
import { CorelogicSuggestion } from '../../../models
|
5
|
+
import { CorelogicSuggestion } from '../../../models';
|
6
6
|
import * as i0 from "@angular/core";
|
7
7
|
import * as i1 from "@angular/common/http";
|
8
8
|
export class CorelogicService {
|
@@ -13,7 +13,7 @@ export class CorelogicService {
|
|
13
13
|
}
|
14
14
|
getAccessToken(force = false) {
|
15
15
|
if (!this._accessToken || force) {
|
16
|
-
this.http.get(`${this.environment.
|
16
|
+
this.http.get(`${this.environment.apiV2}/corelogic/tokens`)
|
17
17
|
.pipe(map((response) => response.access_token))
|
18
18
|
.subscribe((token) => {
|
19
19
|
this._accessToken = token;
|
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
39
39
|
type: Inject,
|
40
40
|
args: ['environment']
|
41
41
|
}] }] });
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZWxvZ2ljLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvcHJvcGVydHkvY29yZWxvZ2ljL2NvcmVsb2dpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBS3RELE1BQU0sT0FBTyxnQkFBZ0I7SUFJM0IsWUFDVSxJQUFnQixFQUNPLFdBQWdCO1FBRHZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDTyxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUpqRCx1QkFBa0IsR0FBMEIsSUFBSSxhQUFhLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFNekUsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFLLEdBQUcsS0FBSztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxLQUFLLEVBQUU7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssbUJBQW1CLENBQUM7aUJBQ3hELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDbkQsU0FBUyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2dCQUMxQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFhLEVBQUUsT0FBTyxHQUFHLElBQUk7UUFDMUMsNkNBQTZDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksYUFBYSxPQUFPLHNCQUFzQixLQUFLLEVBQUUsQ0FBQzthQUNwRyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDNUcsQ0FBQztJQUNOLENBQUM7K0dBN0JVLGdCQUFnQiw0Q0FNakIsYUFBYTttSEFOWixnQkFBZ0IsY0FGZixNQUFNOzs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBDb3JlbG9naWNTdWdnZXN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29yZWxvZ2ljU2VydmljZSB7XG4gIF9hY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBhY2Nlc3NUb2tlblN1YmplY3Q6IFJlcGxheVN1YmplY3Q8c3RyaW5nPiA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZz4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICB9XG5cbiAgZ2V0QWNjZXNzVG9rZW4oZm9yY2UgPSBmYWxzZSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgaWYgKCF0aGlzLl9hY2Nlc3NUb2tlbiB8fCBmb3JjZSkge1xuICAgICAgdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9jb3JlbG9naWMvdG9rZW5zYClcbiAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5hY2Nlc3NfdG9rZW4pKVxuICAgICAgICAuc3Vic2NyaWJlKCh0b2tlbjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5fYWNjZXNzVG9rZW4gPSB0b2tlbjtcbiAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuU3ViamVjdC5uZXh0KHRoaXMuX2FjY2Vzc1Rva2VuKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYWNjZXNzVG9rZW5TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0U3VnZ2VzdGlvbnMocXVlcnk6IHN0cmluZywgY291bnRyeSA9ICdhdScpOiBPYnNlcnZhYmxlPENvcmVsb2dpY1N1Z2dlc3Rpb25bXT4ge1xuICAgIC8vIEBUT0RPIGhhbmRsZSBkaWZmZXJlbnQgY291bnRyaWVzIGluIGZ1dHVyZVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuY29yZUxvZ2ljVXJsfS9wcm9wZXJ0eS8ke2NvdW50cnl9L3YyL3N1Z2dlc3QuanNvbj9xPSR7cXVlcnl9YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlLnN1Z2dlc3Rpb25zLm1hcCgoaXRlbTogb2JqZWN0KSA9PiBwbGFpblRvQ2xhc3MoQ29yZWxvZ2ljU3VnZ2VzdGlvbiwgaXRlbSkpKVxuICAgICAgKTtcbiAgfVxufVxuIl19
|
@@ -7,8 +7,8 @@ import { HttpParams, HttpClient, HTTP_INTERCEPTORS } from '@angular/common/http'
|
|
7
7
|
import { map, mergeMap, filter, first as first$1, catchError, finalize, debounceTime, distinctUntilChanged, startWith } from 'rxjs/operators';
|
8
8
|
import { ReplaySubject, Subject, Observable, throwError, combineLatest, BehaviorSubject, forkJoin, of, from, merge as merge$1 } from 'rxjs';
|
9
9
|
import { plainToClass, Type, Transform, Exclude, Expose, classToPlain } from 'class-transformer';
|
10
|
-
import get from 'lodash/get';
|
11
10
|
import { __decorate } from 'tslib';
|
11
|
+
import get from 'lodash/get';
|
12
12
|
import flatten from 'lodash/flatten';
|
13
13
|
import hasIn from 'lodash/hasIn';
|
14
14
|
import intersection from 'lodash/intersection';
|
@@ -41,124 +41,6 @@ import * as i1$2 from '@angular/platform-browser';
|
|
41
41
|
import isEqual from 'lodash/isEqual';
|
42
42
|
import { RxwebValidators } from '@rxweb/reactive-form-validators';
|
43
43
|
|
44
|
-
/**
|
45
|
-
* https://api-uat.corelogic.asia/property/au/v2/suggest.json
|
46
|
-
* address suggestion from corelogic service
|
47
|
-
*/
|
48
|
-
class CorelogicSuggestion {
|
49
|
-
}
|
50
|
-
|
51
|
-
class CorelogicService {
|
52
|
-
constructor(http, environment) {
|
53
|
-
this.http = http;
|
54
|
-
this.environment = environment;
|
55
|
-
this.accessTokenSubject = new ReplaySubject(1);
|
56
|
-
}
|
57
|
-
getAccessToken(force = false) {
|
58
|
-
if (!this._accessToken || force) {
|
59
|
-
this.http.get(`${this.environment.coreLogicUrl}/access/oauth/token?grant_type=client_credentials&client_id=${this.environment.coreLogicId}&client_secret=${this.environment.coreLogicSecret}`)
|
60
|
-
.pipe(map((response) => response.access_token))
|
61
|
-
.subscribe((token) => {
|
62
|
-
this._accessToken = token;
|
63
|
-
this.accessTokenSubject.next(this._accessToken);
|
64
|
-
});
|
65
|
-
}
|
66
|
-
return this.accessTokenSubject.asObservable();
|
67
|
-
}
|
68
|
-
getSuggestions(query, country = 'au') {
|
69
|
-
// @TODO handle different countries in future
|
70
|
-
return this.http.get(`${this.environment.coreLogicUrl}/property/${country}/v2/suggest.json?q=${query}`)
|
71
|
-
.pipe(map((response) => response.suggestions.map((item) => plainToClass(CorelogicSuggestion, item))));
|
72
|
-
}
|
73
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CorelogicService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
74
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CorelogicService, providedIn: 'root' }); }
|
75
|
-
}
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CorelogicService, decorators: [{
|
77
|
-
type: Injectable,
|
78
|
-
args: [{
|
79
|
-
providedIn: 'root'
|
80
|
-
}]
|
81
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
82
|
-
type: Inject,
|
83
|
-
args: ['environment']
|
84
|
-
}] }] });
|
85
|
-
|
86
|
-
/**
|
87
|
-
* Corelogic interceptor add Core Logic access token for each search requests related with Core Logic API
|
88
|
-
*/
|
89
|
-
class CorelogicInterceptor {
|
90
|
-
constructor(corelogicService, environment) {
|
91
|
-
this.corelogicService = corelogicService;
|
92
|
-
this.environment = environment;
|
93
|
-
}
|
94
|
-
intercept(request, next) {
|
95
|
-
// skip non-corelogic requests
|
96
|
-
if (!request.url.includes(this.environment.coreLogicUrl)) {
|
97
|
-
return next.handle(request);
|
98
|
-
}
|
99
|
-
// don't need token for this endpoint
|
100
|
-
if (request.url.includes(`${this.environment.coreLogicUrl}/access/oauth/token`)) {
|
101
|
-
return next.handle(request);
|
102
|
-
}
|
103
|
-
return this.corelogicService.getAccessToken()
|
104
|
-
.pipe(mergeMap((token) => next.handle(this.addToken(request, token))));
|
105
|
-
}
|
106
|
-
addToken(request, token) {
|
107
|
-
return request.clone({
|
108
|
-
setHeaders: {
|
109
|
-
Authorization: 'Bearer ' + token
|
110
|
-
}
|
111
|
-
});
|
112
|
-
}
|
113
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CorelogicInterceptor, deps: [{ token: CorelogicService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
114
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CorelogicInterceptor }); }
|
115
|
-
}
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CorelogicInterceptor, decorators: [{
|
117
|
-
type: Injectable
|
118
|
-
}], ctorParameters: () => [{ type: CorelogicService }, { type: undefined, decorators: [{
|
119
|
-
type: Inject,
|
120
|
-
args: ['environment']
|
121
|
-
}] }] });
|
122
|
-
|
123
|
-
/**
|
124
|
-
* Financial Year interceptor add financialYear parameter to requests because a lot of POST and GET requests require this parameter
|
125
|
-
* @TODO now we can get current fin year from user on backend. So we can remove this interceptor
|
126
|
-
*/
|
127
|
-
class FinancialYearInterceptor {
|
128
|
-
constructor(environment) {
|
129
|
-
this.environment = environment;
|
130
|
-
}
|
131
|
-
intercept(request, next) {
|
132
|
-
// skip third party requests
|
133
|
-
// @TODO Alex: Also check and ignore requests we don't need financial year
|
134
|
-
if (!request.url.includes(this.environment.api_uri)) {
|
135
|
-
return next.handle(request);
|
136
|
-
}
|
137
|
-
// Set financial year parameter to requests
|
138
|
-
let params = new HttpParams({
|
139
|
-
fromString: request.params.toString()
|
140
|
-
});
|
141
|
-
// clone request to add new parameters
|
142
|
-
let clonedReq = request.clone();
|
143
|
-
// @TODO query params should be passed using second param of get request and HttpParams object
|
144
|
-
if (!params.get('financialYear') && !request.urlWithParams.includes('?financialYear') && !request.urlWithParams.includes('&financialYear')) {
|
145
|
-
params = params.set('financialYear', localStorage.getItem('financialYear'));
|
146
|
-
clonedReq = request.clone({
|
147
|
-
params: params
|
148
|
-
});
|
149
|
-
}
|
150
|
-
return next.handle(clonedReq);
|
151
|
-
}
|
152
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FinancialYearInterceptor, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
153
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FinancialYearInterceptor }); }
|
154
|
-
}
|
155
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FinancialYearInterceptor, decorators: [{
|
156
|
-
type: Injectable
|
157
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
158
|
-
type: Inject,
|
159
|
-
args: ['environment']
|
160
|
-
}] }] });
|
161
|
-
|
162
44
|
/**
|
163
45
|
* @TODO move from db folder when refactored base models
|
164
46
|
*/
|
@@ -174,6 +56,9 @@ class AbstractModel {
|
|
174
56
|
}
|
175
57
|
}
|
176
58
|
|
59
|
+
let Address$1 = class Address extends AbstractModel {
|
60
|
+
};
|
61
|
+
|
177
62
|
let Country$1 = class Country extends AbstractModel {
|
178
63
|
};
|
179
64
|
|
@@ -193,66 +78,6 @@ class Country extends Country$1 {
|
|
193
78
|
}
|
194
79
|
}
|
195
80
|
|
196
|
-
class AddressService {
|
197
|
-
constructor(http, environment) {
|
198
|
-
this.http = http;
|
199
|
-
this.environment = environment;
|
200
|
-
this.countriesSubject = new ReplaySubject(1);
|
201
|
-
}
|
202
|
-
getCountries() {
|
203
|
-
if (!this._countries) {
|
204
|
-
this.http.get(`${this.environment.apiV2}/countries`)
|
205
|
-
.pipe(map((response) => response.map((item) => plainToClass(Country, item))))
|
206
|
-
.subscribe((countries) => {
|
207
|
-
this._countries = countries;
|
208
|
-
this.countriesSubject.next(countries);
|
209
|
-
});
|
210
|
-
}
|
211
|
-
return this.countriesSubject.asObservable();
|
212
|
-
}
|
213
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddressService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
214
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddressService, providedIn: 'root' }); }
|
215
|
-
}
|
216
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddressService, decorators: [{
|
217
|
-
type: Injectable,
|
218
|
-
args: [{
|
219
|
-
providedIn: 'root'
|
220
|
-
}]
|
221
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
222
|
-
type: Inject,
|
223
|
-
args: ['environment']
|
224
|
-
}] }] });
|
225
|
-
|
226
|
-
/**
|
227
|
-
* @TODO TT-3846 upgrade
|
228
|
-
*/
|
229
|
-
class PdfService {
|
230
|
-
constructor(http, environment) {
|
231
|
-
this.http = http;
|
232
|
-
this.environment = environment;
|
233
|
-
}
|
234
|
-
fromHTMLElements(elements, landscape) {
|
235
|
-
const formData = new FormData();
|
236
|
-
formData.append('file', new Blob([...Array.from(elements).map(element => element.outerHTML)], { type: 'text/html' }));
|
237
|
-
formData.append('landscape', landscape ? '1' : '0');
|
238
|
-
return this.http.post(`${this.environment.apiV2}/pdf/html`, formData, { responseType: 'blob' });
|
239
|
-
}
|
240
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
241
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfService, providedIn: 'root' }); }
|
242
|
-
}
|
243
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfService, decorators: [{
|
244
|
-
type: Injectable,
|
245
|
-
args: [{
|
246
|
-
providedIn: 'root'
|
247
|
-
}]
|
248
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
249
|
-
type: Inject,
|
250
|
-
args: ['environment']
|
251
|
-
}] }] });
|
252
|
-
|
253
|
-
let Address$1 = class Address extends AbstractModel {
|
254
|
-
};
|
255
|
-
|
256
81
|
var AddressTypeEnum;
|
257
82
|
(function (AddressTypeEnum) {
|
258
83
|
AddressTypeEnum[AddressTypeEnum["STREET"] = 1] = "STREET";
|
@@ -6111,6 +5936,13 @@ const CAPITAL_COSTS_ITEMS = [
|
|
6111
5936
|
}),
|
6112
5937
|
];
|
6113
5938
|
|
5939
|
+
/**
|
5940
|
+
* https://api-uat.corelogic.asia/property/au/v2/suggest.json
|
5941
|
+
* address suggestion from corelogic service
|
5942
|
+
*/
|
5943
|
+
class CorelogicSuggestion {
|
5944
|
+
}
|
5945
|
+
|
6114
5946
|
/**
|
6115
5947
|
* class contains equity information for passed financial year
|
6116
5948
|
*/
|
@@ -10827,6 +10659,174 @@ __decorate([
|
|
10827
10659
|
Type(() => TaxReturnItem)
|
10828
10660
|
], TaxReturn.prototype, "taxReturnItems", void 0);
|
10829
10661
|
|
10662
|
+
class CorelogicService {
|
10663
|
+
constructor(http, environment) {
|
10664
|
+
this.http = http;
|
10665
|
+
this.environment = environment;
|
10666
|
+
this.accessTokenSubject = new ReplaySubject(1);
|
10667
|
+
}
|
10668
|
+
getAccessToken(force = false) {
|
10669
|
+
if (!this._accessToken || force) {
|
10670
|
+
this.http.get(`${this.environment.apiV2}/corelogic/tokens`)
|
10671
|
+
.pipe(map((response) => response.access_token))
|
10672
|
+
.subscribe((token) => {
|
10673
|
+
this._accessToken = token;
|
10674
|
+
this.accessTokenSubject.next(this._accessToken);
|
10675
|
+
});
|
10676
|
+
}
|
10677
|
+
return this.accessTokenSubject.asObservable();
|
10678
|
+
}
|
10679
|
+
getSuggestions(query, country = 'au') {
|
10680
|
+
// @TODO handle different countries in future
|
10681
|
+
return this.http.get(`${this.environment.coreLogicUrl}/property/${country}/v2/suggest.json?q=${query}`)
|
10682
|
+
.pipe(map((response) => response.suggestions.map((item) => plainToClass(CorelogicSuggestion, item))));
|
10683
|
+
}
|
10684
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CorelogicService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
10685
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CorelogicService, providedIn: 'root' }); }
|
10686
|
+
}
|
10687
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CorelogicService, decorators: [{
|
10688
|
+
type: Injectable,
|
10689
|
+
args: [{
|
10690
|
+
providedIn: 'root'
|
10691
|
+
}]
|
10692
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
10693
|
+
type: Inject,
|
10694
|
+
args: ['environment']
|
10695
|
+
}] }] });
|
10696
|
+
|
10697
|
+
/**
|
10698
|
+
* Corelogic interceptor add Core Logic access token for each search requests related with Core Logic API
|
10699
|
+
*/
|
10700
|
+
class CorelogicInterceptor {
|
10701
|
+
constructor(corelogicService, environment) {
|
10702
|
+
this.corelogicService = corelogicService;
|
10703
|
+
this.environment = environment;
|
10704
|
+
}
|
10705
|
+
intercept(request, next) {
|
10706
|
+
// skip non-corelogic requests
|
10707
|
+
if (!request.url.includes(this.environment.coreLogicUrl)) {
|
10708
|
+
return next.handle(request);
|
10709
|
+
}
|
10710
|
+
// don't need token for this endpoint
|
10711
|
+
if (request.url.includes(`${this.environment.coreLogicUrl}/access/oauth/token`)) {
|
10712
|
+
return next.handle(request);
|
10713
|
+
}
|
10714
|
+
return this.corelogicService.getAccessToken()
|
10715
|
+
.pipe(mergeMap((token) => next.handle(this.addToken(request, token))));
|
10716
|
+
}
|
10717
|
+
addToken(request, token) {
|
10718
|
+
return request.clone({
|
10719
|
+
setHeaders: {
|
10720
|
+
Authorization: 'Bearer ' + token
|
10721
|
+
}
|
10722
|
+
});
|
10723
|
+
}
|
10724
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CorelogicInterceptor, deps: [{ token: CorelogicService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
10725
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CorelogicInterceptor }); }
|
10726
|
+
}
|
10727
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CorelogicInterceptor, decorators: [{
|
10728
|
+
type: Injectable
|
10729
|
+
}], ctorParameters: () => [{ type: CorelogicService }, { type: undefined, decorators: [{
|
10730
|
+
type: Inject,
|
10731
|
+
args: ['environment']
|
10732
|
+
}] }] });
|
10733
|
+
|
10734
|
+
/**
|
10735
|
+
* Financial Year interceptor add financialYear parameter to requests because a lot of POST and GET requests require this parameter
|
10736
|
+
* @TODO now we can get current fin year from user on backend. So we can remove this interceptor
|
10737
|
+
*/
|
10738
|
+
class FinancialYearInterceptor {
|
10739
|
+
constructor(environment) {
|
10740
|
+
this.environment = environment;
|
10741
|
+
}
|
10742
|
+
intercept(request, next) {
|
10743
|
+
// skip third party requests
|
10744
|
+
// @TODO Alex: Also check and ignore requests we don't need financial year
|
10745
|
+
if (!request.url.includes(this.environment.api_uri)) {
|
10746
|
+
return next.handle(request);
|
10747
|
+
}
|
10748
|
+
// Set financial year parameter to requests
|
10749
|
+
let params = new HttpParams({
|
10750
|
+
fromString: request.params.toString()
|
10751
|
+
});
|
10752
|
+
// clone request to add new parameters
|
10753
|
+
let clonedReq = request.clone();
|
10754
|
+
// @TODO query params should be passed using second param of get request and HttpParams object
|
10755
|
+
if (!params.get('financialYear') && !request.urlWithParams.includes('?financialYear') && !request.urlWithParams.includes('&financialYear')) {
|
10756
|
+
params = params.set('financialYear', localStorage.getItem('financialYear'));
|
10757
|
+
clonedReq = request.clone({
|
10758
|
+
params: params
|
10759
|
+
});
|
10760
|
+
}
|
10761
|
+
return next.handle(clonedReq);
|
10762
|
+
}
|
10763
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FinancialYearInterceptor, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
10764
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FinancialYearInterceptor }); }
|
10765
|
+
}
|
10766
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FinancialYearInterceptor, decorators: [{
|
10767
|
+
type: Injectable
|
10768
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
10769
|
+
type: Inject,
|
10770
|
+
args: ['environment']
|
10771
|
+
}] }] });
|
10772
|
+
|
10773
|
+
class AddressService {
|
10774
|
+
constructor(http, environment) {
|
10775
|
+
this.http = http;
|
10776
|
+
this.environment = environment;
|
10777
|
+
this.countriesSubject = new ReplaySubject(1);
|
10778
|
+
}
|
10779
|
+
getCountries() {
|
10780
|
+
if (!this._countries) {
|
10781
|
+
this.http.get(`${this.environment.apiV2}/countries`)
|
10782
|
+
.pipe(map((response) => response.map((item) => plainToClass(Country, item))))
|
10783
|
+
.subscribe((countries) => {
|
10784
|
+
this._countries = countries;
|
10785
|
+
this.countriesSubject.next(countries);
|
10786
|
+
});
|
10787
|
+
}
|
10788
|
+
return this.countriesSubject.asObservable();
|
10789
|
+
}
|
10790
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddressService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
10791
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddressService, providedIn: 'root' }); }
|
10792
|
+
}
|
10793
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddressService, decorators: [{
|
10794
|
+
type: Injectable,
|
10795
|
+
args: [{
|
10796
|
+
providedIn: 'root'
|
10797
|
+
}]
|
10798
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
10799
|
+
type: Inject,
|
10800
|
+
args: ['environment']
|
10801
|
+
}] }] });
|
10802
|
+
|
10803
|
+
/**
|
10804
|
+
* @TODO TT-3846 upgrade
|
10805
|
+
*/
|
10806
|
+
class PdfService {
|
10807
|
+
constructor(http, environment) {
|
10808
|
+
this.http = http;
|
10809
|
+
this.environment = environment;
|
10810
|
+
}
|
10811
|
+
fromHTMLElements(elements, landscape) {
|
10812
|
+
const formData = new FormData();
|
10813
|
+
formData.append('file', new Blob([...Array.from(elements).map(element => element.outerHTML)], { type: 'text/html' }));
|
10814
|
+
formData.append('landscape', landscape ? '1' : '0');
|
10815
|
+
return this.http.post(`${this.environment.apiV2}/pdf/html`, formData, { responseType: 'blob' });
|
10816
|
+
}
|
10817
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
10818
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfService, providedIn: 'root' }); }
|
10819
|
+
}
|
10820
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfService, decorators: [{
|
10821
|
+
type: Injectable,
|
10822
|
+
args: [{
|
10823
|
+
providedIn: 'root'
|
10824
|
+
}]
|
10825
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
10826
|
+
type: Inject,
|
10827
|
+
args: ['environment']
|
10828
|
+
}] }] });
|
10829
|
+
|
10830
10830
|
/**
|
10831
10831
|
* @TODO Alex (TT-1777): replace old logic with the new when all services ready
|
10832
10832
|
* @TODO Alex (TT-1777): rename old logic and keep it for custom events
|