@esolve/ng-esolve-connect 0.5.0 → 0.6.2
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/esolve-ng-esolve-connect.umd.js +528 -465
- package/bundles/esolve-ng-esolve-connect.umd.js.map +1 -1
- package/esm2015/lib/auth/esolve-account.service.js +55 -7
- package/esm2015/lib/auth/esolve-auth-interceptor.service.js +3 -3
- package/esm2015/lib/auth/esolve-auth.service.js +21 -58
- package/esm2015/lib/auth/esolve-registration-data.js +2 -0
- package/esm2015/lib/auth/esolve-registration-post-response-item.js +2 -0
- package/esm2015/lib/auth/esolve-registration-result.js +9 -0
- package/esm2015/lib/auth/esolve-session.service.js +4 -10
- package/esm2015/lib/cart/esolve-cart-item-record.js +1 -1
- package/esm2015/lib/cart/esolve-cart-item-response.js +2 -0
- package/esm2015/lib/cart/esolve-cart.service.js +8 -53
- package/esm2015/lib/esolve-connect.config.js +8 -1
- package/esm2015/lib/shared/error-handler/esolve-error-handler.service.js +58 -0
- package/esm2015/lib/shared/error-handler/esolve-http-error.js +8 -0
- package/esm2015/lib/stock/esolve-stock-item.js +13 -3
- package/esm2015/lib/stock/esolve-stock-record.js +1 -1
- package/esm2015/lib/stock/esolve-stock.service.js +2 -2
- package/esm2015/public-api.js +6 -1
- package/fesm2015/esolve-ng-esolve-connect.js +257 -214
- package/fesm2015/esolve-ng-esolve-connect.js.map +1 -1
- package/lib/auth/esolve-account.service.d.ts +8 -1
- package/lib/auth/esolve-auth.service.d.ts +3 -1
- package/lib/auth/esolve-registration-data.d.ts +12 -0
- package/lib/auth/esolve-registration-post-response-item.d.ts +6 -0
- package/lib/auth/esolve-registration-result.d.ts +7 -0
- package/lib/auth/esolve-session.service.d.ts +1 -2
- package/lib/cart/esolve-cart-item-record.d.ts +0 -5
- package/lib/cart/esolve-cart-item-response.d.ts +5 -0
- package/lib/cart/esolve-cart.service.d.ts +4 -2
- package/lib/shared/error-handler/esolve-error-handler.service.d.ts +11 -0
- package/lib/shared/error-handler/esolve-http-error.d.ts +6 -0
- package/lib/stock/esolve-stock-item.d.ts +17 -1
- package/lib/stock/esolve-stock-record.d.ts +7 -1
- package/package.json +1 -1
- package/public-api.d.ts +5 -0
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, Injectable, Inject, NgModule } from '@angular/core';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
|
-
import * as i1 from '@angular/common/http';
|
|
5
|
-
import { HttpParams, HTTP_INTERCEPTORS, HttpClientModule,
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import
|
|
4
|
+
import * as i1$1 from '@angular/common/http';
|
|
5
|
+
import { HttpParams, HTTP_INTERCEPTORS, HttpClientModule, HttpErrorResponse, HttpHeaders } from '@angular/common/http';
|
|
6
|
+
import { BehaviorSubject, throwError, iif, of } from 'rxjs';
|
|
7
|
+
import * as i1 from '@angular/platform-browser';
|
|
8
|
+
import { map, tap, catchError, switchMap } from 'rxjs/operators';
|
|
9
9
|
|
|
10
|
-
const ESOLVE_CONNECT_CONFIG = new InjectionToken('esolve.connect.config');
|
|
10
|
+
const ESOLVE_CONNECT_CONFIG = new InjectionToken('esolve.connect.config');
|
|
11
|
+
// For future development
|
|
12
|
+
// export const GLOBAL_CONFIG = {
|
|
13
|
+
// images_url: '',
|
|
14
|
+
// media_path: '/media',
|
|
15
|
+
// stock_path: '/stock',
|
|
16
|
+
// banner_path: '/banners'
|
|
17
|
+
// };
|
|
11
18
|
|
|
12
19
|
class EsolveSession {
|
|
13
20
|
constructor(id = -1, _key = '', _key_expiration_date) {
|
|
@@ -36,89 +43,13 @@ class EsolveSession {
|
|
|
36
43
|
}
|
|
37
44
|
}
|
|
38
45
|
|
|
39
|
-
class EsolveAddress {
|
|
40
|
-
constructor(id, recipient, address_type, pobox, place_name, street_number, street, suburb, city, province, country, postal_code, latitude, longitude) {
|
|
41
|
-
this.id = id;
|
|
42
|
-
this.recipient = recipient;
|
|
43
|
-
this.address_type = address_type;
|
|
44
|
-
this.pobox = pobox;
|
|
45
|
-
this.place_name = place_name;
|
|
46
|
-
this.street_number = street_number;
|
|
47
|
-
this.street = street;
|
|
48
|
-
this.suburb = suburb;
|
|
49
|
-
this.city = city;
|
|
50
|
-
this.province = province;
|
|
51
|
-
this.country = country;
|
|
52
|
-
this.postal_code = postal_code;
|
|
53
|
-
this.latitude = latitude;
|
|
54
|
-
this.longitude = longitude;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
class EsolveAccountService {
|
|
59
|
-
constructor(config, http) {
|
|
60
|
-
this.config = config;
|
|
61
|
-
this.http = http;
|
|
62
|
-
this._user_id = 0;
|
|
63
|
-
}
|
|
64
|
-
get user_id() {
|
|
65
|
-
return this._user_id;
|
|
66
|
-
}
|
|
67
|
-
set user_id(value) {
|
|
68
|
-
value = ((value > 0) ? value : 0);
|
|
69
|
-
if (this._user_id !== value) {
|
|
70
|
-
this._user_id = value;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
processUserAddress(records) {
|
|
74
|
-
const user_addesses = [];
|
|
75
|
-
if (records && (this._user_id > 0)) {
|
|
76
|
-
for (const record of records) {
|
|
77
|
-
if (+record.userid === this._user_id) {
|
|
78
|
-
user_addesses.push(new EsolveAddress(+record.id, record.recipient, record.address_type, record.pobox, record.place_name, record.street_number, record.street, record.suburb, record.city, record.province, record.country, record.postal_code, +record.latitude, +record.longitude));
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return user_addesses;
|
|
83
|
-
}
|
|
84
|
-
getAddress() {
|
|
85
|
-
let params = new HttpParams();
|
|
86
|
-
params = params.set('ws_id', this.config.wsid);
|
|
87
|
-
params = params.set('user_id', this.user_id.toString());
|
|
88
|
-
return iif(() => (this.user_id > 0), this.http.get(`${this.config.api_url}/service/get-addresses.php`, { params }).pipe(map(response => {
|
|
89
|
-
if (response.records === undefined) {
|
|
90
|
-
throw response;
|
|
91
|
-
}
|
|
92
|
-
return this.processUserAddress(response.records);
|
|
93
|
-
}), catchError((err) => {
|
|
94
|
-
return throwError(err);
|
|
95
|
-
})), throwError('Log in is required'));
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
EsolveAccountService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveAccountService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
99
|
-
EsolveAccountService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveAccountService, providedIn: 'root' });
|
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveAccountService, decorators: [{
|
|
101
|
-
type: Injectable,
|
|
102
|
-
args: [{
|
|
103
|
-
providedIn: 'root'
|
|
104
|
-
}]
|
|
105
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
106
|
-
type: Inject,
|
|
107
|
-
args: [ESOLVE_CONNECT_CONFIG]
|
|
108
|
-
}] }, { type: i1.HttpClient }]; } });
|
|
109
|
-
|
|
110
46
|
class EsolveSessionService {
|
|
111
|
-
constructor(config
|
|
47
|
+
constructor(config) {
|
|
112
48
|
this.config = config;
|
|
113
49
|
this.storage_key = 'ngEslvUserSession';
|
|
114
50
|
this.setStorageKey();
|
|
115
51
|
this._session = new BehaviorSubject(new EsolveSession(0, ''));
|
|
116
52
|
this.session = this._session.asObservable();
|
|
117
|
-
this._session.subscribe((session) => {
|
|
118
|
-
if (session.key !== '') {
|
|
119
|
-
account.user_id = session.id;
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
53
|
}
|
|
123
54
|
get currentSession() {
|
|
124
55
|
return this._session.value;
|
|
@@ -174,7 +105,7 @@ class EsolveSessionService {
|
|
|
174
105
|
}
|
|
175
106
|
}
|
|
176
107
|
}
|
|
177
|
-
EsolveSessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveSessionService, deps: [{ token: ESOLVE_CONNECT_CONFIG }
|
|
108
|
+
EsolveSessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveSessionService, deps: [{ token: ESOLVE_CONNECT_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
178
109
|
EsolveSessionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveSessionService, providedIn: 'root' });
|
|
179
110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveSessionService, decorators: [{
|
|
180
111
|
type: Injectable,
|
|
@@ -184,7 +115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
|
|
|
184
115
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
185
116
|
type: Inject,
|
|
186
117
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
187
|
-
}] }
|
|
118
|
+
}] }]; } });
|
|
188
119
|
|
|
189
120
|
class EsolveAuthInterceptorService {
|
|
190
121
|
constructor(config, session) {
|
|
@@ -194,7 +125,7 @@ class EsolveAuthInterceptorService {
|
|
|
194
125
|
intercept(req, next) {
|
|
195
126
|
if (req.url.startsWith(`${this.config.api_url}/service/`)) {
|
|
196
127
|
const service_identifier = req.url.replace(`${this.config.api_url}/service/`, '');
|
|
197
|
-
const
|
|
128
|
+
const old_params_keys = req.params.keys();
|
|
198
129
|
const modified_url = req.url;
|
|
199
130
|
let params = new HttpParams();
|
|
200
131
|
const session = this.session.currentSession;
|
|
@@ -203,7 +134,7 @@ class EsolveAuthInterceptorService {
|
|
|
203
134
|
params = params.set('key', session.key);
|
|
204
135
|
}
|
|
205
136
|
}
|
|
206
|
-
|
|
137
|
+
old_params_keys.forEach(key => {
|
|
207
138
|
params = params.set(key, req.params.get(key) || '');
|
|
208
139
|
});
|
|
209
140
|
const modified_req = req.clone({
|
|
@@ -261,6 +192,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
|
|
|
261
192
|
}]
|
|
262
193
|
}] });
|
|
263
194
|
|
|
195
|
+
class EsolveHttpError {
|
|
196
|
+
constructor(type, message, error_code) {
|
|
197
|
+
this.type = type;
|
|
198
|
+
this.message = message;
|
|
199
|
+
this.error_code = error_code;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
class EsolveErrorHandlerService {
|
|
204
|
+
constructor() { }
|
|
205
|
+
parseException(exception) {
|
|
206
|
+
const error = new EsolveHttpError('exception', exception.message || 'Unknown exception has occurred', exception.additional_data.exception_type || 'unknown');
|
|
207
|
+
return error;
|
|
208
|
+
}
|
|
209
|
+
parseErrors(response) {
|
|
210
|
+
const error = new EsolveHttpError('error', 'Unknown error has occurred', 'unknown');
|
|
211
|
+
if ((response.status.state === 'none') && (response.log.length > 0)) {
|
|
212
|
+
error.error_code = 'no_response';
|
|
213
|
+
error.message = 'Response was provided';
|
|
214
|
+
}
|
|
215
|
+
else if (response.status.state === 'error') {
|
|
216
|
+
const login_error_log = response.log[0];
|
|
217
|
+
error.error_code = login_error_log.message_code;
|
|
218
|
+
error.message = login_error_log.message;
|
|
219
|
+
}
|
|
220
|
+
return error;
|
|
221
|
+
}
|
|
222
|
+
handleHttpError(service_type, errorRes) {
|
|
223
|
+
if (errorRes instanceof HttpErrorResponse) {
|
|
224
|
+
if (errorRes.status === 500) {
|
|
225
|
+
const server_error = errorRes.error;
|
|
226
|
+
if ((server_error.service_type === service_type) ||
|
|
227
|
+
(server_error.type !== undefined) ||
|
|
228
|
+
(server_error.message !== undefined) ||
|
|
229
|
+
(server_error.additional_data !== undefined)) {
|
|
230
|
+
return throwError(this.parseException(server_error));
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
if (errorRes.type !== undefined) {
|
|
236
|
+
if (errorRes.type === 'exception') {
|
|
237
|
+
return throwError(this.parseException(errorRes));
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
else if (errorRes.transaction_type !== undefined) {
|
|
241
|
+
return throwError(this.parseErrors(errorRes));
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return throwError(errorRes);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
EsolveErrorHandlerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveErrorHandlerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
248
|
+
EsolveErrorHandlerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveErrorHandlerService, providedIn: 'root' });
|
|
249
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveErrorHandlerService, decorators: [{
|
|
250
|
+
type: Injectable,
|
|
251
|
+
args: [{
|
|
252
|
+
providedIn: 'root'
|
|
253
|
+
}]
|
|
254
|
+
}], ctorParameters: function () { return []; } });
|
|
255
|
+
|
|
264
256
|
/**
|
|
265
257
|
* Search Engine Optimization information.
|
|
266
258
|
*/
|
|
@@ -369,7 +361,7 @@ class EsolveSeoService {
|
|
|
369
361
|
this.setPageKeywordsTags(seoInfo.keywords);
|
|
370
362
|
}
|
|
371
363
|
}
|
|
372
|
-
EsolveSeoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveSeoService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1
|
|
364
|
+
EsolveSeoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveSeoService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.Title }, { token: i1.Meta }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
373
365
|
EsolveSeoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveSeoService, providedIn: 'root' });
|
|
374
366
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveSeoService, decorators: [{
|
|
375
367
|
type: Injectable,
|
|
@@ -379,13 +371,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
|
|
|
379
371
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
380
372
|
type: Inject,
|
|
381
373
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
382
|
-
}] }, { type: i1
|
|
374
|
+
}] }, { type: i1.Title }, { type: i1.Meta }]; } });
|
|
375
|
+
|
|
376
|
+
class EsolveAddress {
|
|
377
|
+
constructor(id, recipient, address_type, pobox, place_name, street_number, street, suburb, city, province, country, postal_code, latitude, longitude) {
|
|
378
|
+
this.id = id;
|
|
379
|
+
this.recipient = recipient;
|
|
380
|
+
this.address_type = address_type;
|
|
381
|
+
this.pobox = pobox;
|
|
382
|
+
this.place_name = place_name;
|
|
383
|
+
this.street_number = street_number;
|
|
384
|
+
this.street = street;
|
|
385
|
+
this.suburb = suburb;
|
|
386
|
+
this.city = city;
|
|
387
|
+
this.province = province;
|
|
388
|
+
this.country = country;
|
|
389
|
+
this.postal_code = postal_code;
|
|
390
|
+
this.latitude = latitude;
|
|
391
|
+
this.longitude = longitude;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
class EsolveRegistrationResult {
|
|
396
|
+
constructor(user_id, guest, authentication_required, auto_login) {
|
|
397
|
+
this.user_id = user_id;
|
|
398
|
+
this.guest = guest;
|
|
399
|
+
this.authentication_required = authentication_required;
|
|
400
|
+
this.auto_login = auto_login;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
383
403
|
|
|
384
404
|
class EsolveAuthService {
|
|
385
|
-
constructor(config, http, session) {
|
|
405
|
+
constructor(config, http, session, errorHandler) {
|
|
386
406
|
this.config = config;
|
|
387
407
|
this.http = http;
|
|
388
408
|
this.session = session;
|
|
409
|
+
this.errorHandler = errorHandler;
|
|
389
410
|
}
|
|
390
411
|
checkAccessToken(session) {
|
|
391
412
|
var _a;
|
|
@@ -403,7 +424,9 @@ class EsolveAuthService {
|
|
|
403
424
|
'Accept-Language': '*'
|
|
404
425
|
})
|
|
405
426
|
}).pipe(map(responseData => {
|
|
406
|
-
if ((responseData.type === 'error') ||
|
|
427
|
+
if ((responseData.type === 'error') ||
|
|
428
|
+
(responseData.type === 'exception') ||
|
|
429
|
+
(!responseData.additional_data.key_okay)) {
|
|
407
430
|
throw responseData;
|
|
408
431
|
}
|
|
409
432
|
responseData.additional_data.key = token;
|
|
@@ -428,7 +451,8 @@ class EsolveAuthService {
|
|
|
428
451
|
'Accept-Language': '*'
|
|
429
452
|
})
|
|
430
453
|
}).pipe(tap(responseData => {
|
|
431
|
-
if ((responseData.type === 'error') ||
|
|
454
|
+
if ((responseData.type === 'error') ||
|
|
455
|
+
(responseData.type === 'exception')) {
|
|
432
456
|
throw responseData;
|
|
433
457
|
}
|
|
434
458
|
}), catchError(this.handleError), tap(responseData => {
|
|
@@ -459,11 +483,13 @@ class EsolveAuthService {
|
|
|
459
483
|
responseType: 'json',
|
|
460
484
|
observe: 'body'
|
|
461
485
|
}).pipe(map(response => {
|
|
462
|
-
if ((response.responses === undefined) ||
|
|
486
|
+
if ((response.responses === undefined) ||
|
|
487
|
+
(response.responses.length <= 0)) {
|
|
463
488
|
throw response;
|
|
464
489
|
}
|
|
465
490
|
const login_response = response.responses[0];
|
|
466
|
-
if ((login_response.status.state !== 'success') &&
|
|
491
|
+
if ((login_response.status.state !== 'success') &&
|
|
492
|
+
(login_response.status.state !== 'warning')) {
|
|
467
493
|
throw login_response;
|
|
468
494
|
}
|
|
469
495
|
for (const response_log of login_response.log) {
|
|
@@ -474,54 +500,7 @@ class EsolveAuthService {
|
|
|
474
500
|
}
|
|
475
501
|
throw login_response;
|
|
476
502
|
}), catchError((errorRes) => {
|
|
477
|
-
|
|
478
|
-
const exception_type = exception.additional_data.exception_type;
|
|
479
|
-
const error = {
|
|
480
|
-
type: 'exception',
|
|
481
|
-
message: exception.message || '',
|
|
482
|
-
error_code: exception_type || 'unknown'
|
|
483
|
-
};
|
|
484
|
-
return error;
|
|
485
|
-
};
|
|
486
|
-
const parseLoginErrors = (login_response) => {
|
|
487
|
-
const error = {
|
|
488
|
-
type: 'error',
|
|
489
|
-
message: 'Unknown error has occured',
|
|
490
|
-
error_code: 'unknown'
|
|
491
|
-
};
|
|
492
|
-
if ((login_response.status.state === 'none') && (login_response.log.length > 0)) {
|
|
493
|
-
error.error_code = 'no_response';
|
|
494
|
-
error.message = 'Response was provided';
|
|
495
|
-
}
|
|
496
|
-
else if (login_response.status.state === 'error') {
|
|
497
|
-
const login_error_log = login_response.log[0];
|
|
498
|
-
error.error_code = login_error_log.message_code;
|
|
499
|
-
error.message = login_error_log.message;
|
|
500
|
-
}
|
|
501
|
-
return error;
|
|
502
|
-
};
|
|
503
|
-
if (errorRes instanceof HttpErrorResponse) {
|
|
504
|
-
if (errorRes.status === 500) {
|
|
505
|
-
const server_error = errorRes.error;
|
|
506
|
-
if ((server_error.service_type === 'set-login') ||
|
|
507
|
-
(server_error.type !== undefined) ||
|
|
508
|
-
(server_error.message !== undefined) ||
|
|
509
|
-
(server_error.additional_data !== undefined)) {
|
|
510
|
-
return throwError(parseException(server_error));
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
else {
|
|
515
|
-
if (errorRes.type !== undefined) {
|
|
516
|
-
if (errorRes.type === 'exception') {
|
|
517
|
-
return throwError(parseException(errorRes));
|
|
518
|
-
}
|
|
519
|
-
}
|
|
520
|
-
else if (errorRes.transaction_type === 'Login') {
|
|
521
|
-
return throwError(parseLoginErrors(errorRes));
|
|
522
|
-
}
|
|
523
|
-
}
|
|
524
|
-
return throwError(errorRes);
|
|
503
|
+
return this.errorHandler.handleHttpError('set-login', errorRes);
|
|
525
504
|
}));
|
|
526
505
|
}
|
|
527
506
|
logout() {
|
|
@@ -530,6 +509,7 @@ class EsolveAuthService {
|
|
|
530
509
|
console.log(error);
|
|
531
510
|
});
|
|
532
511
|
}
|
|
512
|
+
// Handlers
|
|
533
513
|
handleExpiration() {
|
|
534
514
|
return (session) => {
|
|
535
515
|
this.checkAccessToken(session).then((response) => {
|
|
@@ -549,7 +529,9 @@ class EsolveAuthService {
|
|
|
549
529
|
message: 'An unknown error occurred',
|
|
550
530
|
data: {}
|
|
551
531
|
};
|
|
552
|
-
if ((!errorRes.type) ||
|
|
532
|
+
if ((!errorRes.type) ||
|
|
533
|
+
(!errorRes.service_type) ||
|
|
534
|
+
(!errorRes.message)) {
|
|
553
535
|
return throwError(error);
|
|
554
536
|
}
|
|
555
537
|
if (errorRes.message.trim() !== '') {
|
|
@@ -561,7 +543,7 @@ class EsolveAuthService {
|
|
|
561
543
|
return throwError(error);
|
|
562
544
|
}
|
|
563
545
|
}
|
|
564
|
-
EsolveAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveAuthService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }, { token: EsolveSessionService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
546
|
+
EsolveAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveAuthService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }, { token: EsolveSessionService }, { token: EsolveErrorHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
565
547
|
EsolveAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveAuthService, providedIn: 'root' });
|
|
566
548
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveAuthService, decorators: [{
|
|
567
549
|
type: Injectable,
|
|
@@ -571,7 +553,104 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
|
|
|
571
553
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
572
554
|
type: Inject,
|
|
573
555
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
574
|
-
}] }, { type: i1.HttpClient }, { type: EsolveSessionService }]; } });
|
|
556
|
+
}] }, { type: i1$1.HttpClient }, { type: EsolveSessionService }, { type: EsolveErrorHandlerService }]; } });
|
|
557
|
+
|
|
558
|
+
class EsolveAccountService {
|
|
559
|
+
constructor(config, http, sessionService, errorHandler) {
|
|
560
|
+
this.config = config;
|
|
561
|
+
this.http = http;
|
|
562
|
+
this.sessionService = sessionService;
|
|
563
|
+
this.errorHandler = errorHandler;
|
|
564
|
+
this._user_id = 0;
|
|
565
|
+
this.sessionService.session.subscribe((session) => {
|
|
566
|
+
if (session.key !== '') {
|
|
567
|
+
this.user_id = session.id;
|
|
568
|
+
}
|
|
569
|
+
});
|
|
570
|
+
}
|
|
571
|
+
get user_id() {
|
|
572
|
+
return this._user_id;
|
|
573
|
+
}
|
|
574
|
+
set user_id(value) {
|
|
575
|
+
value = ((value > 0) ? value : 0);
|
|
576
|
+
if (this._user_id !== value) {
|
|
577
|
+
this._user_id = value;
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
processUserAddress(records) {
|
|
581
|
+
const user_addresses = [];
|
|
582
|
+
if (records && (this._user_id > 0)) {
|
|
583
|
+
for (const record of records) {
|
|
584
|
+
if (+record.userid === this._user_id) {
|
|
585
|
+
user_addresses.push(new EsolveAddress(+record.id, record.recipient, record.address_type, record.pobox, record.place_name, record.street_number, record.street, record.suburb, record.city, record.province, record.country, record.postal_code, +record.latitude, +record.longitude));
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
return user_addresses;
|
|
590
|
+
}
|
|
591
|
+
getAddress() {
|
|
592
|
+
let params = new HttpParams();
|
|
593
|
+
params = params.set('ws_id', this.config.wsid);
|
|
594
|
+
params = params.set('user_id', this.user_id.toString());
|
|
595
|
+
return iif(() => (this.user_id > 0), this.http.get(`${this.config.api_url}/service/get-addresses.php`, { params }).pipe(map(response => {
|
|
596
|
+
if (response.records === undefined) {
|
|
597
|
+
throw response;
|
|
598
|
+
}
|
|
599
|
+
return this.processUserAddress(response.records);
|
|
600
|
+
}), catchError((err) => {
|
|
601
|
+
return throwError(err);
|
|
602
|
+
})), throwError('Log in is required'));
|
|
603
|
+
}
|
|
604
|
+
register(user_registration) {
|
|
605
|
+
const body = {
|
|
606
|
+
user: user_registration
|
|
607
|
+
};
|
|
608
|
+
return this.http.post(`${this.config.api_url}/service/set-registration.php`, body, {
|
|
609
|
+
headers: {
|
|
610
|
+
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
|
|
611
|
+
},
|
|
612
|
+
params: {
|
|
613
|
+
ws_id: this.config.wsid
|
|
614
|
+
},
|
|
615
|
+
responseType: 'json',
|
|
616
|
+
observe: 'body'
|
|
617
|
+
}).pipe(map(response => {
|
|
618
|
+
if ((response.responses === undefined) ||
|
|
619
|
+
(response.responses.length <= 0)) {
|
|
620
|
+
throw response;
|
|
621
|
+
}
|
|
622
|
+
const registration_response = response.responses[0];
|
|
623
|
+
if ((registration_response.status.state !== 'success') &&
|
|
624
|
+
(registration_response.status.state !== 'warning')) {
|
|
625
|
+
throw registration_response;
|
|
626
|
+
}
|
|
627
|
+
for (const response_log of registration_response.log) {
|
|
628
|
+
if ((response_log.type === 'success') && (response_log.message_code === 'registration_success')) {
|
|
629
|
+
let user_id = 0;
|
|
630
|
+
if (registration_response.auto_login) {
|
|
631
|
+
user_id = registration_response.esolve_id;
|
|
632
|
+
this.sessionService.handleUpdateSession(user_id);
|
|
633
|
+
}
|
|
634
|
+
return new EsolveRegistrationResult(user_id, registration_response.guest, registration_response.authentication_required, registration_response.auto_login);
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
throw registration_response;
|
|
638
|
+
}), catchError((errorRes) => {
|
|
639
|
+
return this.errorHandler.handleHttpError('set-registration', errorRes);
|
|
640
|
+
}));
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
EsolveAccountService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveAccountService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }, { token: EsolveSessionService }, { token: EsolveErrorHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
644
|
+
EsolveAccountService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveAccountService, providedIn: 'root' });
|
|
645
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveAccountService, decorators: [{
|
|
646
|
+
type: Injectable,
|
|
647
|
+
args: [{
|
|
648
|
+
providedIn: 'root'
|
|
649
|
+
}]
|
|
650
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
651
|
+
type: Inject,
|
|
652
|
+
args: [ESOLVE_CONNECT_CONFIG]
|
|
653
|
+
}] }, { type: i1$1.HttpClient }, { type: EsolveSessionService }, { type: EsolveErrorHandlerService }]; } });
|
|
575
654
|
|
|
576
655
|
class EsolveMediaArticle {
|
|
577
656
|
constructor(identifier, title, article, image_url = '', tags = [], topics = [], seo_title = '', seo_keywords = '', seo_description = '') {
|
|
@@ -679,7 +758,7 @@ class EsolveMediaService {
|
|
|
679
758
|
}));
|
|
680
759
|
}
|
|
681
760
|
}
|
|
682
|
-
EsolveMediaService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveMediaService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
761
|
+
EsolveMediaService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveMediaService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
683
762
|
EsolveMediaService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveMediaService, providedIn: 'root' });
|
|
684
763
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveMediaService, decorators: [{
|
|
685
764
|
type: Injectable,
|
|
@@ -689,7 +768,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
|
|
|
689
768
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
690
769
|
type: Inject,
|
|
691
770
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
692
|
-
}] }, { type: i1.HttpClient }]; } });
|
|
771
|
+
}] }, { type: i1$1.HttpClient }]; } });
|
|
693
772
|
|
|
694
773
|
class EsolveNewsArticle {
|
|
695
774
|
constructor(id, title, sef_title, article, short_description, txdate, active, image, featured, author, seo_title = '', seo_keywords = '') {
|
|
@@ -821,7 +900,7 @@ class EsolveNewsService {
|
|
|
821
900
|
return new EsolveNewsArticle(newsRecord.id, newsRecord.title, newsRecord.sef_title, newsRecord.article, newsRecord.short_description, newsRecord.txdate, newsRecord.active, newsRecord.image, newsRecord.featured, author, newsRecord.seo_page_title, newsRecord.seo_keywords);
|
|
822
901
|
}
|
|
823
902
|
}
|
|
824
|
-
EsolveNewsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveNewsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
903
|
+
EsolveNewsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveNewsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
825
904
|
EsolveNewsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveNewsService, providedIn: 'root' });
|
|
826
905
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveNewsService, decorators: [{
|
|
827
906
|
type: Injectable,
|
|
@@ -831,7 +910,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
|
|
|
831
910
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
832
911
|
type: Inject,
|
|
833
912
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
834
|
-
}] }, { type: i1.HttpClient }]; } });
|
|
913
|
+
}] }, { type: i1$1.HttpClient }]; } });
|
|
835
914
|
|
|
836
915
|
class EsolveBanner {
|
|
837
916
|
constructor(id, banner_display_container, identifier, type, title, article, sort_priority, link, images) {
|
|
@@ -964,7 +1043,7 @@ class EsolveBannerService {
|
|
|
964
1043
|
}));
|
|
965
1044
|
}
|
|
966
1045
|
}
|
|
967
|
-
EsolveBannerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveBannerService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1046
|
+
EsolveBannerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveBannerService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
968
1047
|
EsolveBannerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveBannerService, providedIn: 'root' });
|
|
969
1048
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveBannerService, decorators: [{
|
|
970
1049
|
type: Injectable,
|
|
@@ -974,7 +1053,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
|
|
|
974
1053
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
975
1054
|
type: Inject,
|
|
976
1055
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
977
|
-
}] }, { type: i1.HttpClient }]; } });
|
|
1056
|
+
}] }, { type: i1$1.HttpClient }]; } });
|
|
978
1057
|
|
|
979
1058
|
class EsolveMenuItem {
|
|
980
1059
|
constructor(url, name, target, children = []) {
|
|
@@ -1014,7 +1093,7 @@ class EsolveMenuService {
|
|
|
1014
1093
|
return menu;
|
|
1015
1094
|
}
|
|
1016
1095
|
}
|
|
1017
|
-
EsolveMenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveMenuService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1096
|
+
EsolveMenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveMenuService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1018
1097
|
EsolveMenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveMenuService, providedIn: 'root' });
|
|
1019
1098
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveMenuService, decorators: [{
|
|
1020
1099
|
type: Injectable,
|
|
@@ -1024,7 +1103,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
|
|
|
1024
1103
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
1025
1104
|
type: Inject,
|
|
1026
1105
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
1027
|
-
}] }, { type: i1.HttpClient }]; } });
|
|
1106
|
+
}] }, { type: i1$1.HttpClient }]; } });
|
|
1028
1107
|
|
|
1029
1108
|
class EsolveTopicService {
|
|
1030
1109
|
constructor(config, http) {
|
|
@@ -1064,7 +1143,7 @@ class EsolveTopicService {
|
|
|
1064
1143
|
}));
|
|
1065
1144
|
}
|
|
1066
1145
|
}
|
|
1067
|
-
EsolveTopicService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveTopicService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1146
|
+
EsolveTopicService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveTopicService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1068
1147
|
EsolveTopicService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveTopicService, providedIn: 'root' });
|
|
1069
1148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveTopicService, decorators: [{
|
|
1070
1149
|
type: Injectable,
|
|
@@ -1074,7 +1153,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
|
|
|
1074
1153
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
1075
1154
|
type: Inject,
|
|
1076
1155
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
1077
|
-
}] }, { type: i1.HttpClient }]; } });
|
|
1156
|
+
}] }, { type: i1$1.HttpClient }]; } });
|
|
1078
1157
|
|
|
1079
1158
|
class EsolveStockBadge {
|
|
1080
1159
|
constructor(id, text, identifier, font_colour, badge_colour, sort_priority) {
|
|
@@ -1199,7 +1278,15 @@ class EsolveStockItem {
|
|
|
1199
1278
|
/**
|
|
1200
1279
|
* Stock badges
|
|
1201
1280
|
*/
|
|
1202
|
-
badges,
|
|
1281
|
+
badges,
|
|
1282
|
+
/**
|
|
1283
|
+
* ID of default category linked to the stock item
|
|
1284
|
+
*/
|
|
1285
|
+
category_id,
|
|
1286
|
+
/**
|
|
1287
|
+
* ID of default subcategory linked to the stock item
|
|
1288
|
+
*/
|
|
1289
|
+
subcategory_id, seo_title = '', seo_keywords = '') {
|
|
1203
1290
|
this.id = id;
|
|
1204
1291
|
this.code = code;
|
|
1205
1292
|
this.name = name;
|
|
@@ -1212,6 +1299,8 @@ class EsolveStockItem {
|
|
|
1212
1299
|
this.tags = tags;
|
|
1213
1300
|
this.topics = topics;
|
|
1214
1301
|
this.badges = badges;
|
|
1302
|
+
this.category_id = category_id;
|
|
1303
|
+
this.subcategory_id = subcategory_id;
|
|
1215
1304
|
if (seo_title.trim() === '') {
|
|
1216
1305
|
seo_title = this.name;
|
|
1217
1306
|
}
|
|
@@ -1245,7 +1334,7 @@ class EsolveStockItem {
|
|
|
1245
1334
|
* Path to original stock image
|
|
1246
1335
|
*/
|
|
1247
1336
|
get original_image_src() {
|
|
1248
|
-
return 'images/' + (this.image_name ? 'stock/original/' + this.image_name : 'no_image.jpg');
|
|
1337
|
+
return '/images/' + (this.image_name ? 'stock/original/' + this.image_name : 'no_image.jpg');
|
|
1249
1338
|
}
|
|
1250
1339
|
}
|
|
1251
1340
|
|
|
@@ -1289,7 +1378,7 @@ class EsolveStockService {
|
|
|
1289
1378
|
}
|
|
1290
1379
|
}
|
|
1291
1380
|
const price = new EsolveStockPrice(record.regular_sellprice, record.regular_sellprice_inclusive, record.sellprice, record.sellprice_inclusive);
|
|
1292
|
-
return new EsolveStockItem(+record.id, record.code, record.name, record.sef_name, record.description, !!+record.is_active, !!+record.is_featured, record.image_name, price, tags, topics, badges, record.seo_page_title, record.seo_keywords);
|
|
1381
|
+
return new EsolveStockItem(+record.id, record.code, record.name, record.sef_name, record.description, !!+record.is_active, !!+record.is_featured, record.image_name, price, tags, topics, badges, record.category_id, +record.subcategory_id, record.seo_page_title, record.seo_keywords);
|
|
1293
1382
|
}
|
|
1294
1383
|
/**
|
|
1295
1384
|
* Retrieves stock records from HTTP params.
|
|
@@ -1382,7 +1471,7 @@ class EsolveStockService {
|
|
|
1382
1471
|
}));
|
|
1383
1472
|
}
|
|
1384
1473
|
}
|
|
1385
|
-
EsolveStockService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveStockService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1474
|
+
EsolveStockService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveStockService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1386
1475
|
EsolveStockService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveStockService, providedIn: 'root' });
|
|
1387
1476
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveStockService, decorators: [{
|
|
1388
1477
|
type: Injectable,
|
|
@@ -1392,7 +1481,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
|
|
|
1392
1481
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
1393
1482
|
type: Inject,
|
|
1394
1483
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
1395
|
-
}] }, { type: i1.HttpClient }]; } });
|
|
1484
|
+
}] }, { type: i1$1.HttpClient }]; } });
|
|
1396
1485
|
|
|
1397
1486
|
class EsolveCategoryTreeItem {
|
|
1398
1487
|
constructor(type, esolve_id, parent_id, description, sef_description, short_description, sort_priority, active, display_only, image_name, seo_title, seo_keywords, seo_description, children) {
|
|
@@ -1547,7 +1636,7 @@ class EsolveCategoryTreeService {
|
|
|
1547
1636
|
return throwError('Invalid options');
|
|
1548
1637
|
}
|
|
1549
1638
|
}
|
|
1550
|
-
EsolveCategoryTreeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveCategoryTreeService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1639
|
+
EsolveCategoryTreeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveCategoryTreeService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1551
1640
|
EsolveCategoryTreeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveCategoryTreeService, providedIn: 'root' });
|
|
1552
1641
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveCategoryTreeService, decorators: [{
|
|
1553
1642
|
type: Injectable,
|
|
@@ -1557,7 +1646,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
|
|
|
1557
1646
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
1558
1647
|
type: Inject,
|
|
1559
1648
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
1560
|
-
}] }, { type: i1.HttpClient }]; } });
|
|
1649
|
+
}] }, { type: i1$1.HttpClient }]; } });
|
|
1561
1650
|
|
|
1562
1651
|
class EsolveStockLocation {
|
|
1563
1652
|
constructor(record) {
|
|
@@ -1842,9 +1931,10 @@ class EsolveCartStockItem {
|
|
|
1842
1931
|
}
|
|
1843
1932
|
|
|
1844
1933
|
class EsolveCartService {
|
|
1845
|
-
constructor(config, http) {
|
|
1934
|
+
constructor(config, http, errorHandler) {
|
|
1846
1935
|
this.config = config;
|
|
1847
1936
|
this.http = http;
|
|
1937
|
+
this.errorHandler = errorHandler;
|
|
1848
1938
|
this._cached_tracking = 0;
|
|
1849
1939
|
}
|
|
1850
1940
|
/**
|
|
@@ -2134,59 +2224,12 @@ class EsolveCartService {
|
|
|
2134
2224
|
}
|
|
2135
2225
|
return checkout_result.esolve_id;
|
|
2136
2226
|
}), catchError((errorRes) => {
|
|
2137
|
-
|
|
2138
|
-
const exception_type = exception.additional_data.exception_type;
|
|
2139
|
-
const error = {
|
|
2140
|
-
type: 'exception',
|
|
2141
|
-
message: exception.message || '',
|
|
2142
|
-
error_code: exception_type || 'unknown'
|
|
2143
|
-
};
|
|
2144
|
-
return error;
|
|
2145
|
-
};
|
|
2146
|
-
const parseCheckoutErrors = (response) => {
|
|
2147
|
-
const error = {
|
|
2148
|
-
type: 'error',
|
|
2149
|
-
message: 'Unknown error has occured',
|
|
2150
|
-
error_code: 'unknown'
|
|
2151
|
-
};
|
|
2152
|
-
if ((response.status.state === 'none') || (response.log.length === 0)) {
|
|
2153
|
-
error.error_code = 'no_response';
|
|
2154
|
-
error.message = 'Response was provided';
|
|
2155
|
-
}
|
|
2156
|
-
else if (response.status.state === 'error') {
|
|
2157
|
-
const error_log = response.log[0];
|
|
2158
|
-
error.error_code = error_log.message_code;
|
|
2159
|
-
error.message = error_log.message;
|
|
2160
|
-
}
|
|
2161
|
-
return error;
|
|
2162
|
-
};
|
|
2163
|
-
if (errorRes instanceof HttpErrorResponse) {
|
|
2164
|
-
if (errorRes.status === 500) {
|
|
2165
|
-
const server_error = errorRes.error;
|
|
2166
|
-
if ((server_error.service_type === 'set-checkout') ||
|
|
2167
|
-
(server_error.type !== undefined) ||
|
|
2168
|
-
(server_error.message !== undefined) ||
|
|
2169
|
-
(server_error.additional_data !== undefined)) {
|
|
2170
|
-
return throwError(parseException(server_error));
|
|
2171
|
-
}
|
|
2172
|
-
}
|
|
2173
|
-
}
|
|
2174
|
-
else {
|
|
2175
|
-
if (errorRes.type !== undefined) {
|
|
2176
|
-
if (errorRes.type === 'exception') {
|
|
2177
|
-
return throwError(parseException(errorRes));
|
|
2178
|
-
}
|
|
2179
|
-
}
|
|
2180
|
-
else if (errorRes.transaction_type !== undefined) {
|
|
2181
|
-
return throwError(parseCheckoutErrors(errorRes));
|
|
2182
|
-
}
|
|
2183
|
-
}
|
|
2184
|
-
return throwError(errorRes);
|
|
2227
|
+
return this.errorHandler.handleHttpError('set-checkout', errorRes);
|
|
2185
2228
|
}));
|
|
2186
2229
|
}));
|
|
2187
2230
|
}
|
|
2188
2231
|
}
|
|
2189
|
-
EsolveCartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveCartService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2232
|
+
EsolveCartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveCartService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }, { token: EsolveErrorHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2190
2233
|
EsolveCartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveCartService, providedIn: 'root' });
|
|
2191
2234
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: EsolveCartService, decorators: [{
|
|
2192
2235
|
type: Injectable,
|
|
@@ -2196,7 +2239,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
|
|
|
2196
2239
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
2197
2240
|
type: Inject,
|
|
2198
2241
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
2199
|
-
}] }, { type: i1.HttpClient }]; } });
|
|
2242
|
+
}] }, { type: i1$1.HttpClient }, { type: EsolveErrorHandlerService }]; } });
|
|
2200
2243
|
|
|
2201
2244
|
/*
|
|
2202
2245
|
* Public API Surface of ng-esolve-connect
|
|
@@ -2206,5 +2249,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
|
|
|
2206
2249
|
* Generated bundle index. Do not edit.
|
|
2207
2250
|
*/
|
|
2208
2251
|
|
|
2209
|
-
export { BankingDetails, EsolveAccountService, EsolveAddress, EsolveAuthService, EsolveBanner, EsolveBannerImage, EsolveBannerImageHotspot, EsolveBannerService, EsolveCartItem, EsolveCartService, EsolveCartTotals, EsolveCategoryTreeItem, EsolveCategoryTreeService, EsolveMediaArticle, EsolveMediaService, EsolveMenuItem, EsolveMenuService, EsolveNewsArticle, EsolveNewsArticleAuthor, EsolveNewsArticleList, EsolveNewsGroup, EsolveNewsService, EsolvePaymentMethod, EsolveSEOInfo, EsolveSeoService, EsolveSession, EsolveSessionService, EsolveShippingCost, EsolveShippingMethod, EsolveStockBadge, EsolveStockItem, EsolveStockItemList, EsolveStockLocation, EsolveStockPrice, EsolveStockService, EsolveTag, EsolveTopic, EsolveTopicService, NgEsolveConnectModule };
|
|
2252
|
+
export { BankingDetails, EsolveAccountService, EsolveAddress, EsolveAuthService, EsolveBanner, EsolveBannerImage, EsolveBannerImageHotspot, EsolveBannerService, EsolveCartItem, EsolveCartService, EsolveCartTotals, EsolveCategoryTreeItem, EsolveCategoryTreeService, EsolveErrorHandlerService, EsolveHttpError, EsolveMediaArticle, EsolveMediaService, EsolveMenuItem, EsolveMenuService, EsolveNewsArticle, EsolveNewsArticleAuthor, EsolveNewsArticleList, EsolveNewsGroup, EsolveNewsService, EsolvePaymentMethod, EsolveRegistrationResult, EsolveSEOInfo, EsolveSeoService, EsolveSession, EsolveSessionService, EsolveShippingCost, EsolveShippingMethod, EsolveStockBadge, EsolveStockItem, EsolveStockItemList, EsolveStockLocation, EsolveStockPrice, EsolveStockService, EsolveTag, EsolveTopic, EsolveTopicService, NgEsolveConnectModule };
|
|
2210
2253
|
//# sourceMappingURL=esolve-ng-esolve-connect.js.map
|