@esolve/ng-esolve-connect 0.7.3 → 0.9.0

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.
Files changed (38) hide show
  1. package/esm2020/lib/account/esolve-account.service.mjs +81 -1
  2. package/esm2020/lib/account/esolve-change-password-result.mjs +8 -0
  3. package/esm2020/lib/account/esolve-forgot-password-response.mjs +2 -0
  4. package/esm2020/lib/account/esolve-reset-password-result.mjs +11 -0
  5. package/esm2020/lib/banners/esolve-banner.service.mjs +1 -1
  6. package/esm2020/lib/cart/esolve-cart.service.mjs +5 -2
  7. package/esm2020/lib/category-tree/esolve-category-tree-item-options.mjs +2 -0
  8. package/esm2020/lib/category-tree/esolve-category-tree.service.mjs +1 -1
  9. package/esm2020/lib/news/esolve-news-article-options.mjs +2 -0
  10. package/esm2020/lib/news/esolve-news.service.mjs +1 -1
  11. package/esm2020/lib/payment/esolve-payment.service.mjs +22 -2
  12. package/esm2020/lib/payment/esolve-vault-item.mjs +3 -2
  13. package/esm2020/lib/shared/error-handler/esolve-error-handler.service.mjs +56 -25
  14. package/esm2020/lib/shared/esolve-response.mjs +1 -1
  15. package/esm2020/lib/shared/esolve-result.mjs +8 -0
  16. package/esm2020/lib/stock/esolve-stock-item-options.mjs +1 -1
  17. package/esm2020/lib/stock/esolve-stock.service.mjs +4 -1
  18. package/esm2020/public-api.mjs +12 -3
  19. package/fesm2015/esolve-ng-esolve-connect.mjs +205 -45
  20. package/fesm2015/esolve-ng-esolve-connect.mjs.map +1 -1
  21. package/fesm2020/esolve-ng-esolve-connect.mjs +205 -45
  22. package/fesm2020/esolve-ng-esolve-connect.mjs.map +1 -1
  23. package/lib/account/esolve-account.service.d.ts +10 -3
  24. package/lib/account/esolve-change-password-result.d.ts +6 -0
  25. package/lib/account/esolve-forgot-password-response.d.ts +7 -0
  26. package/lib/account/esolve-reset-password-result.d.ts +9 -0
  27. package/lib/category-tree/esolve-category-tree-item-options.d.ts +18 -0
  28. package/lib/category-tree/esolve-category-tree.service.d.ts +1 -19
  29. package/lib/news/esolve-news-article-options.d.ts +11 -0
  30. package/lib/news/esolve-news.service.d.ts +1 -12
  31. package/lib/payment/esolve-payment.service.d.ts +2 -0
  32. package/lib/payment/esolve-vault-item.d.ts +2 -1
  33. package/lib/shared/error-handler/esolve-error-handler.service.d.ts +7 -2
  34. package/lib/shared/esolve-response.d.ts +15 -9
  35. package/lib/shared/esolve-result.d.ts +6 -0
  36. package/lib/stock/esolve-stock-item-options.d.ts +1 -0
  37. package/package.json +1 -1
  38. package/public-api.d.ts +11 -2
@@ -195,6 +195,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
195
195
  }]
196
196
  }] });
197
197
 
198
+ class EsolveResult {
199
+ constructor(status, code, message) {
200
+ this.status = status;
201
+ this.code = code;
202
+ this.message = message;
203
+ }
204
+ }
205
+
198
206
  class EsolveHttpError {
199
207
  constructor(type, message, error_code) {
200
208
  this.type = type;
@@ -205,11 +213,62 @@ class EsolveHttpError {
205
213
 
206
214
  class EsolveErrorHandlerService {
207
215
  constructor() { }
216
+ handleHttpPostError(service_type, errorRes) {
217
+ if (!(errorRes instanceof HttpErrorResponse) &&
218
+ !('service_type' in errorRes) &&
219
+ (('id' in errorRes) &&
220
+ ('esolve_id' in errorRes) &&
221
+ ('transaction_type' in errorRes) &&
222
+ ('status' in errorRes) &&
223
+ ('log' in errorRes))) {
224
+ return throwError(this.parsePostErrors(errorRes));
225
+ }
226
+ return this.handleHttpError(service_type, errorRes);
227
+ }
228
+ handleHttpDeleteError(service_type, errorRes) {
229
+ const is_not_base = (!(errorRes instanceof HttpErrorResponse) &&
230
+ !('service_type' in errorRes) &&
231
+ (('id' in errorRes) &&
232
+ ('status' in errorRes) &&
233
+ ('message' in errorRes) &&
234
+ ('code' in errorRes)));
235
+ if (is_not_base) {
236
+ return throwError(this.parseDeleteError(errorRes));
237
+ }
238
+ return this.handleHttpError(service_type, errorRes);
239
+ }
240
+ handleHttpError(service_type, errorRes) {
241
+ if (errorRes instanceof HttpErrorResponse) {
242
+ if (errorRes.status === 500) {
243
+ const server_error = errorRes.error;
244
+ if (('service_type' in server_error) &&
245
+ (server_error.service_type === service_type)) {
246
+ return throwError(this.parseException(server_error));
247
+ }
248
+ }
249
+ }
250
+ else {
251
+ if (('service_type' in errorRes) &&
252
+ (errorRes.service_type === service_type)) {
253
+ if (errorRes.type === 'exception') {
254
+ return throwError(this.parseException(errorRes));
255
+ }
256
+ else if (errorRes.type === 'error') {
257
+ return throwError(this.parseResponseError(errorRes));
258
+ }
259
+ }
260
+ }
261
+ return throwError(errorRes);
262
+ }
208
263
  parseException(exception) {
209
264
  const error = new EsolveHttpError('exception', exception.message || 'Unknown exception has occurred', exception.additional_data.exception_type || 'unknown');
210
265
  return error;
211
266
  }
212
- parseErrors(response) {
267
+ parseResponseError(exception) {
268
+ const error = new EsolveHttpError('error', exception.message || 'Unknown error has occurred', exception.code || 'unknown');
269
+ return error;
270
+ }
271
+ parsePostErrors(response) {
213
272
  const error = new EsolveHttpError('error', 'Unknown error has occurred', 'unknown');
214
273
  if ((response.status.state === 'none') && (response.log.length > 0)) {
215
274
  error.error_code = 'no_response';
@@ -222,29 +281,9 @@ class EsolveErrorHandlerService {
222
281
  }
223
282
  return error;
224
283
  }
225
- handleHttpPostError(service_type, errorRes) {
226
- if (errorRes instanceof HttpErrorResponse) {
227
- if (errorRes.status === 500) {
228
- const server_error = errorRes.error;
229
- if ((server_error.service_type === service_type) ||
230
- (server_error.type !== undefined) ||
231
- (server_error.message !== undefined) ||
232
- (server_error.additional_data !== undefined)) {
233
- return throwError(this.parseException(server_error));
234
- }
235
- }
236
- }
237
- else {
238
- if (errorRes.type !== undefined) {
239
- if ((errorRes.type === 'exception') || (errorRes.type === 'error')) {
240
- return throwError(this.parseException(errorRes));
241
- }
242
- }
243
- else if (errorRes.transaction_type !== undefined) {
244
- return throwError(this.parseErrors(errorRes));
245
- }
246
- }
247
- return throwError(errorRes);
284
+ parseDeleteError(result) {
285
+ const error = new EsolveHttpError('error', result.message, result.code);
286
+ return error;
248
287
  }
249
288
  }
250
289
  EsolveErrorHandlerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveErrorHandlerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -644,6 +683,23 @@ class EsolveRegistrationResult extends EsolveResponseResult {
644
683
  }
645
684
  }
646
685
 
686
+ class EsolveChangePasswordResult extends EsolveResponseResult {
687
+ constructor(response) {
688
+ super(response);
689
+ this.password_updated = (response.status.state === 'success');
690
+ }
691
+ }
692
+
693
+ class EsolveResetPasswordResult extends EsolveResponseResult {
694
+ constructor(response) {
695
+ super(response);
696
+ this.id = response.esolve_id;
697
+ this.reset_success = response.reset_success;
698
+ this.password_matches_old = response.password_matches_old;
699
+ this.login_required = response.login_required;
700
+ }
701
+ }
702
+
647
703
  class EsolveAccountService {
648
704
  constructor(config, http, sessionService, errorHandler, responseHandler) {
649
705
  this.config = config;
@@ -756,6 +812,25 @@ class EsolveAccountService {
756
812
  return this.processUserAddress(response.records);
757
813
  }));
758
814
  }
815
+ deleteAddress(id) {
816
+ return this.http.delete(`${this.config.api_url}/service/delete-address.php`, {
817
+ params: {
818
+ ws_id: this.config.wsid,
819
+ id: id
820
+ },
821
+ responseType: 'json',
822
+ observe: 'body'
823
+ }).pipe(map(http_response => {
824
+ if ((http_response.result === undefined) ||
825
+ (http_response.result === null) ||
826
+ (http_response.result.status !== 'success')) {
827
+ throw http_response;
828
+ }
829
+ return new EsolveResult(http_response.result.status, http_response.result.code, http_response.result.message);
830
+ }), catchError((errorRes) => {
831
+ return this.errorHandler.handleHttpPostError('delete-address', errorRes);
832
+ }));
833
+ }
759
834
  register(user_registration) {
760
835
  const body = {
761
836
  user: user_registration
@@ -778,6 +853,64 @@ class EsolveAccountService {
778
853
  return this.errorHandler.handleHttpPostError('set-registration', errorRes);
779
854
  }));
780
855
  }
856
+ changePassword(password, confirm_password) {
857
+ const body = {
858
+ password,
859
+ confirm_password
860
+ };
861
+ return this.http.post(`${this.config.api_url}/service/set-change-password.php`, body, {
862
+ headers: {
863
+ 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
864
+ },
865
+ params: {
866
+ ws_id: this.config.wsid
867
+ },
868
+ responseType: 'json',
869
+ observe: 'body'
870
+ }).pipe(map(http_response => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
871
+ return new EsolveChangePasswordResult(response);
872
+ })), catchError((errorRes) => {
873
+ return this.errorHandler.handleHttpPostError('set-change-password', errorRes);
874
+ }));
875
+ }
876
+ sendForgotPasswordRequest(email) {
877
+ return this.http.get(`${this.config.api_url}/service/get-forgot-password.php`, {
878
+ params: {
879
+ ws_id: this.config.wsid,
880
+ email: email
881
+ }
882
+ }).pipe(map(response => {
883
+ if ((response.records === undefined) ||
884
+ !('reset_link_sent' in response.records)) {
885
+ throw response;
886
+ }
887
+ return response.records.reset_link_sent;
888
+ }));
889
+ }
890
+ resetPassword(reset_key, password, confirm_password, auto_login = true) {
891
+ return this.http.post(`${this.config.api_url}/service/set-forgot-password.php`, {
892
+ reset_key,
893
+ password,
894
+ confirm_password,
895
+ auto_login
896
+ }, {
897
+ headers: {
898
+ 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
899
+ },
900
+ params: {
901
+ ws_id: this.config.wsid
902
+ },
903
+ responseType: 'json',
904
+ observe: 'body'
905
+ }).pipe(map(http_response => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
906
+ if (!response.login_required) {
907
+ this.sessionService.handleUpdateSession(response.esolve_id);
908
+ }
909
+ return new EsolveResetPasswordResult(response);
910
+ })), catchError((errorRes) => {
911
+ return this.errorHandler.handleHttpPostError('set-forgot-password', errorRes);
912
+ }));
913
+ }
781
914
  }
782
915
  EsolveAccountService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveAccountService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }, { token: EsolveSessionService }, { token: EsolveErrorHandlerService }, { token: EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
783
916
  EsolveAccountService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveAccountService, providedIn: 'root' });
@@ -909,6 +1042,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
909
1042
  args: [ESOLVE_CONNECT_CONFIG]
910
1043
  }] }, { type: i1$1.HttpClient }]; } });
911
1044
 
1045
+ class EsolveNewsGroup {
1046
+ constructor(id, name, description, sef_name) {
1047
+ this.id = id;
1048
+ this.name = name;
1049
+ this.description = description;
1050
+ this.sef_name = sef_name;
1051
+ }
1052
+ }
1053
+
912
1054
  class EsolveNewsArticle {
913
1055
  constructor(id, title, sef_title, article, short_description, txdate, active, image, featured, author, seo_title = '', seo_keywords = '') {
914
1056
  this.id = id;
@@ -928,15 +1070,6 @@ class EsolveNewsArticle {
928
1070
  }
929
1071
  }
930
1072
 
931
- class EsolveNewsGroup {
932
- constructor(id, name, description, sef_name) {
933
- this.id = id;
934
- this.name = name;
935
- this.description = description;
936
- this.sef_name = sef_name;
937
- }
938
- }
939
-
940
1073
  class EsolveNewsArticleList {
941
1074
  constructor(newsArticles, total, page) {
942
1075
  this.newsArticles = newsArticles;
@@ -1575,6 +1708,9 @@ class EsolveStockService {
1575
1708
  if (options.rows) {
1576
1709
  params = params.set('rows', options.rows);
1577
1710
  }
1711
+ if (options.search_phrase) {
1712
+ params = params.set('search_phrase', options.search_phrase);
1713
+ }
1578
1714
  if (options.display_only) {
1579
1715
  params = params.set('display_only', options.display_only);
1580
1716
  }
@@ -1786,6 +1922,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
1786
1922
  args: [ESOLVE_CONNECT_CONFIG]
1787
1923
  }] }, { type: i1$1.HttpClient }]; } });
1788
1924
 
1925
+ class EsolveCheckoutResult extends EsolveResponseResult {
1926
+ constructor(response) {
1927
+ super(response);
1928
+ this.id = 0;
1929
+ this.id = +response.esolve_id;
1930
+ }
1931
+ }
1932
+
1789
1933
  class EsolveCartItem {
1790
1934
  constructor(id, stock_item, qty, type, price, discount, discount_interval, vat_rate, allow_quotes, allow_orders, must_collect, requested_assembly, price_incl, discount_price, discount_price_incl, discount_total, vat_total, total, total_incl) {
1791
1935
  this.id = id;
@@ -1849,14 +1993,6 @@ class EsolveCartTotals {
1849
1993
  }
1850
1994
  }
1851
1995
 
1852
- class EsolveCheckoutResult extends EsolveResponseResult {
1853
- constructor(response) {
1854
- super(response);
1855
- this.id = 0;
1856
- this.id = +response.esolve_id;
1857
- }
1858
- }
1859
-
1860
1996
  class EsolveCartStockItem {
1861
1997
  constructor(code, name, sef_name, description, active, items_in_pack, delivery_category, image_name) {
1862
1998
  this.code = code;
@@ -2042,7 +2178,10 @@ class EsolveCartService {
2042
2178
  },
2043
2179
  responseType: 'json',
2044
2180
  observe: 'body'
2045
- }).pipe(map(http_response => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveCheckoutResult(response))), catchError((errorRes) => {
2181
+ }).pipe(map(http_response => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
2182
+ this._cached_tracking = 0;
2183
+ return new EsolveCheckoutResult(response);
2184
+ })), catchError((errorRes) => {
2046
2185
  return this.errorHandler.handleHttpPostError('set-checkout', errorRes);
2047
2186
  }));
2048
2187
  }));
@@ -2080,8 +2219,9 @@ class EsolveVaultItemResult extends EsolveResponseResult {
2080
2219
  }
2081
2220
 
2082
2221
  class EsolveVaultItem {
2083
- constructor(id, last4, brand, expiry_timestamp) {
2222
+ constructor(id, payment_methods_id, last4, brand, expiry_timestamp) {
2084
2223
  this.id = id;
2224
+ this.payment_methods_id = payment_methods_id;
2085
2225
  this.last4 = last4;
2086
2226
  this.brand = brand;
2087
2227
  this.expiry = new Date(expiry_timestamp * 1000);
@@ -2199,7 +2339,7 @@ class EsolvePaymentService {
2199
2339
  const vault = [];
2200
2340
  if (records) {
2201
2341
  for (const record of records) {
2202
- const vault_item = new EsolveVaultItem(+record.id, record.last4, record.brand, record.expiry_timestamp);
2342
+ const vault_item = new EsolveVaultItem(+record.id, +record.payment_methods_id, record.last4, record.brand, record.expiry_timestamp);
2203
2343
  vault.push(vault_item);
2204
2344
  }
2205
2345
  }
@@ -2283,6 +2423,25 @@ class EsolvePaymentService {
2283
2423
  return this.errorHandler.handleHttpPostError('set-vault', errorRes);
2284
2424
  }));
2285
2425
  }
2426
+ deleteVaultItem(id) {
2427
+ return this.http.delete(`${this.config.api_url}/service/delete-vault.php`, {
2428
+ params: {
2429
+ ws_id: this.config.wsid,
2430
+ id: id
2431
+ },
2432
+ responseType: 'json',
2433
+ observe: 'body'
2434
+ }).pipe(map(http_response => {
2435
+ if ((http_response.result === undefined) ||
2436
+ (http_response.result === null) ||
2437
+ (http_response.result.status !== 'success')) {
2438
+ throw http_response;
2439
+ }
2440
+ return new EsolveResult(http_response.result.status, http_response.result.code, http_response.result.message);
2441
+ }), catchError((errorRes) => {
2442
+ return this.errorHandler.handleHttpPostError('delete-vault', errorRes);
2443
+ }));
2444
+ }
2286
2445
  /**
2287
2446
  * Sets the payment for the specified transaction using selected payment method.
2288
2447
  * @param transaction_id eSolve ID to the transaction
@@ -2614,4 +2773,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
2614
2773
  * Generated bundle index. Do not edit.
2615
2774
  */
2616
2775
 
2617
- export { EsolveAccountService, EsolveAddress, EsolveAddressResult, EsolveAuthService, EsolveBankingDetails, EsolveBanner, EsolveBannerImage, EsolveBannerImageHotspot, EsolveBannerService, EsolveCartItem, EsolveCartService, EsolveCartTotals, EsolveCategoryTreeItem, EsolveCategoryTreeService, EsolveCheckoutResult, EsolveErrorHandlerService, EsolveHttpError, EsolveLocationsService, EsolveMediaArticle, EsolveMediaService, EsolveMenuItem, EsolveMenuService, EsolveNewsArticle, EsolveNewsArticleAuthor, EsolveNewsArticleList, EsolveNewsGroup, EsolveNewsService, EsolvePaymentMethod, EsolvePaymentResult, EsolvePaymentService, EsolveRegistrationResult, EsolveResponseHandlerService, EsolveResponseResult, EsolveSEOInfo, EsolveSeoService, EsolveSession, EsolveSessionService, EsolveShippingCost, EsolveShippingMethod, EsolveShippingService, EsolveStockBadge, EsolveStockItem, EsolveStockItemList, EsolveStockLocation, EsolveStockPrice, EsolveStockService, EsolveTag, EsolveTopic, EsolveTopicService, EsolveUserAccount, EsolveUserAccountBusiness, EsolveUserAccountContact, EsolveUserAccountResult, EsolveVaultItem, EsolveVaultItemResult, NgEsolveConnectModule };
2776
+ export { EsolveAccountService, EsolveAddress, EsolveAddressResult, EsolveAuthService, EsolveBankingDetails, EsolveBanner, EsolveBannerImage, EsolveBannerImageHotspot, EsolveBannerService, EsolveCartItem, EsolveCartService, EsolveCartTotals, EsolveCategoryTreeItem, EsolveCategoryTreeService, EsolveChangePasswordResult, EsolveCheckoutResult, EsolveErrorHandlerService, EsolveHttpError, EsolveLocationsService, EsolveMediaArticle, EsolveMediaService, EsolveMenuItem, EsolveMenuService, EsolveNewsArticle, EsolveNewsArticleAuthor, EsolveNewsArticleList, EsolveNewsGroup, EsolveNewsService, EsolvePaymentMethod, EsolvePaymentResult, EsolvePaymentService, EsolveRegistrationResult, EsolveResetPasswordResult, EsolveResponseHandlerService, EsolveResponseResult, EsolveResult, EsolveSEOInfo, EsolveSeoService, EsolveSession, EsolveSessionService, EsolveShippingCost, EsolveShippingMethod, EsolveShippingService, EsolveStockBadge, EsolveStockItem, EsolveStockItemList, EsolveStockLocation, EsolveStockPrice, EsolveStockService, EsolveTag, EsolveTopic, EsolveTopicService, EsolveUserAccount, EsolveUserAccountBusiness, EsolveUserAccountContact, EsolveUserAccountResult, EsolveVaultItem, EsolveVaultItemResult, NgEsolveConnectModule };
2777
+ //# sourceMappingURL=esolve-ng-esolve-connect.mjs.map