@hmcts/ccpay-web-component 6.2.3-beta2 → 6.2.3-beta3

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.
@@ -5,76 +5,61 @@ export class ErrorHandlerService {
5
5
  constructor() { }
6
6
  handleError(err) {
7
7
  let errorMessage;
8
- if (err.error instanceof Error) {
9
- // A client-side or network error occurred.
8
+ if (!err) {
9
+ return throwError('An unexpected error occurred');
10
+ }
11
+ // Check if the error is client-side or network error
12
+ if (err.error instanceof ErrorEvent) {
10
13
  errorMessage = `An error occurred: ${err.error.message}`;
11
14
  }
12
15
  else {
13
- // The backend returned an unsuccessful response code.
14
- if (err.status === 404) {
15
- if (typeof err.error === 'string' && err.error !== undefined) {
16
- if (err.error.length > 60) {
17
- if (JSON.parse(err.error).statusCode !== undefined && JSON.parse(err.error).statusCode === 500) {
16
+ // Check if the error is from the server-side
17
+ if (err.status === 400 || err.status === 404 || err.status === 500) {
18
+ try {
19
+ // Attempt to parse error as JSON
20
+ const parsedError = typeof err.error === 'string' ? JSON.parse(err.error) : err.error;
21
+ if (parsedError) {
22
+ if (parsedError.statusCode && parsedError.statusCode === 500) {
18
23
  errorMessage = 'Internal server error';
19
24
  }
25
+ else if (parsedError.message) {
26
+ if (parsedError.error != undefined && parsedError.statusCode === 400) {
27
+ errorMessage = parsedError.error;
28
+ }
29
+ else {
30
+ errorMessage = parsedError.message;
31
+ }
32
+ }
33
+ else if (parsedError.error) {
34
+ errorMessage = parsedError.error;
35
+ }
20
36
  else {
21
- if (err.error.length > 60) {
22
- const parsedError = JSON.parse(err.error);
23
- errorMessage = parsedError.err;
37
+ const errorMessagePattern = /^\d+\s-\s\"(.+)\"$/;
38
+ const match = parsedError.err.match(errorMessagePattern);
39
+ if (match && match[1]) {
40
+ errorMessage = match[1];
24
41
  }
25
42
  else {
43
+ // Fallback in case the pattern does not match
26
44
  errorMessage = err.error;
27
45
  }
28
46
  }
29
47
  }
30
48
  else {
31
- errorMessage = err.error;
49
+ errorMessage = 'An unexpected error occurred';
32
50
  }
33
51
  }
34
- else {
35
- errorMessage = JSON.parse(err.error).error;
52
+ catch (e) {
53
+ // Fallback if parsing fails
54
+ errorMessage = err.error;
36
55
  }
37
56
  }
38
57
  else if (err.status === 500) {
39
58
  errorMessage = 'Internal server error';
40
59
  }
41
- else if (err.error.messsage === undefined) {
42
- if (typeof err.error === 'object') {
43
- errorMessage = JSON.parse(JSON.stringify(err.error)).error;
44
- }
45
- else {
46
- if (typeof err.error === 'string' && err.error !== undefined) {
47
- if (err.error.length > 60) {
48
- if (JSON.parse(err.error).statusCode !== undefined && JSON.parse(err.error).statusCode === 500) {
49
- errorMessage = 'Internal server error';
50
- }
51
- else {
52
- if (err.error.length > 60) {
53
- const parsedError = JSON.parse(err.error);
54
- errorMessage = parsedError.err;
55
- }
56
- else {
57
- errorMessage = err.error;
58
- }
59
- }
60
- }
61
- else {
62
- errorMessage = err.error;
63
- }
64
- }
65
- else {
66
- const parsedError = JSON.parse(err.error);
67
- errorMessage = parsedError.err;
68
- }
69
- }
70
- }
71
60
  else {
72
- if (err.error.message !== undefined) {
73
- errorMessage = `${err.error.message}`;
74
- }
75
- else {
76
- errorMessage = `${err.error}`;
77
- }
61
+ // General fallback for other status codes
62
+ errorMessage = err.error.message || err.error;
78
63
  }
79
64
  }
80
65
  return throwError(errorMessage);
@@ -96,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
96
81
  providedIn: 'root'
97
82
  }]
98
83
  }], ctorParameters: () => [] });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zaGFyZWQvZXJyb3ItaGFuZGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPOUMsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixnQkFBZ0IsQ0FBQztJQUdqQixXQUFXLENBQUMsR0FBc0I7UUFDaEMsSUFBSSxZQUFvQixDQUFDO1FBQ3pCLElBQUksR0FBRyxDQUFDLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztZQUMvQiwyQ0FBMkM7WUFDM0MsWUFBWSxHQUFHLHNCQUFzQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNELENBQUM7YUFBTSxDQUFDO1lBQ04sc0RBQXNEO1lBQ3RELElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFFdkIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFLLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBRTdELElBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7d0JBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUM5RixDQUFDOzRCQUNDLFlBQVksR0FBRyx1QkFBdUIsQ0FBQzt3QkFDekMsQ0FBQzs2QkFBTSxDQUFDOzRCQUNOLElBQUcs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bEMsQ0FBQztJQUdELHFCQUFxQixDQUFDLFlBQVksRUFBRSxjQUFjLEdBQUcsS0FBSyxFQUFFLEtBQUssR0FBQyxFQUFFO1FBQ2xFLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUMvRCxPQUFPO1lBQ0wsS0FBSyxFQUFFLHFDQUFxQztZQUM1QyxJQUFJLEVBQUUsV0FBVztZQUNqQixTQUFTLEVBQUUsWUFBWTtTQUN4QixDQUFDO0lBQ0osQ0FBQzt1R0F4RlUsbUJBQW1COzJHQUFuQixtQkFBbUIsY0FKbEIsTUFBTTs7MkZBSVAsbUJBQW1CO2tCQUwvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcblxuXG5leHBvcnQgY2xhc3MgRXJyb3JIYW5kbGVyU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuXG4gIGhhbmRsZUVycm9yKGVycjogSHR0cEVycm9yUmVzcG9uc2UpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgICBpZiAoZXJyLmVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIC8vIEEgY2xpZW50LXNpZGUgb3IgbmV0d29yayBlcnJvciBvY2N1cnJlZC5cbiAgICAgIGVycm9yTWVzc2FnZSA9IGBBbiBlcnJvciBvY2N1cnJlZDogJHtlcnIuZXJyb3IubWVzc2FnZX1gO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGUgYmFja2VuZCByZXR1cm5lZCBhbiB1bnN1Y2Nlc3NmdWwgcmVzcG9uc2UgY29kZS5cbiAgICAgIGlmIChlcnIuc3RhdHVzID09PSA0MDQpIHtcblxuICAgICAgICBpZiAodHlwZW9mIGVyci5lcnJvciA9PT0gJ3N0cmluZycgJiYgZXJyLmVycm9yICE9PSB1bmRlZmluZWQpIHtcblxuICAgICAgICAgIGlmKGVyci5lcnJvci5sZW5ndGggPiA2MCkge1xuICAgICAgICAgICAgaWYgKEpTT04ucGFyc2UoZXJyLmVycm9yKS5zdGF0dXNDb2RlICE9PSB1bmRlZmluZWQgJiYgSlNPTi5wYXJzZShlcnIuZXJyb3IpLnN0YXR1c0NvZGUgPT09IDUwMClcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZihlcnIuZXJyb3IubGVuZ3RoID4gNjApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRFcnJvciA9IEpTT04ucGFyc2UoZXJyLmVycm9yKTtcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAgcGFyc2VkRXJyb3IuZXJyO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICBlcnIuZXJyb3I7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAgZXJyLmVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAgSlNPTi5wYXJzZShlcnIuZXJyb3IpLmVycm9yO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGVyci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSAnSW50ZXJuYWwgc2VydmVyIGVycm9yJztcbiAgICAgIH0gZWxzZSBpZiAoZXJyLmVycm9yLm1lc3NzYWdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYoIHR5cGVvZiBlcnIuZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZXJyLmVycm9yKSkuZXJyb3I7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBlcnIuZXJyb3IgPT09ICdzdHJpbmcnICYmIGVyci5lcnJvciAhPT0gdW5kZWZpbmVkKSB7XG5cbiAgICAgICAgICAgIGlmKGVyci5lcnJvci5sZW5ndGggPiA2MCkge1xuICAgICAgICAgICAgICBpZiAoSlNPTi5wYXJzZShlcnIuZXJyb3IpLnN0YXR1c0NvZGUgIT09IHVuZGVmaW5lZCAmJiBKU09OLnBhcnNlKGVyci5lcnJvcikuc3RhdHVzQ29kZSA9PT0gNTAwKVxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYoZXJyLmVycm9yLmxlbmd0aCA+IDYwKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRFcnJvciA9IEpTT04ucGFyc2UoZXJyLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICBwYXJzZWRFcnJvci5lcnI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICBlcnIuZXJyb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICBlcnIuZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZEVycm9yID0gSlNPTi5wYXJzZShlcnIuZXJyb3IpO1xuICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIHBhcnNlZEVycm9yLmVycjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXJyLmVycm9yLm1lc3NhZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2Vyci5lcnJvci5tZXNzYWdlfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZXJyLmVycm9yfWA7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvck1lc3NhZ2UpO1xuICB9XG5cblxuICBnZXRTZXJ2ZXJFcnJvck1lc3NhZ2UoaXNFcnJvckV4aXN0LCBpc0RhdGFOb3RFeGlzdCA9IGZhbHNlLCBlcnJvcj0nJykge1xuICAgIGNvbnN0IGJvZHlDb250ZW50ID0gaXNEYXRhTm90RXhpc3QgPyBlcnJvciA6ICdUcnkgYWdhaW4gbGF0ZXInO1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogXCJUaGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgc2VydmljZVwiLFxuICAgICAgYm9keTogYm9keUNvbnRlbnQsXG4gICAgICBzaG93RXJyb3I6IGlzRXJyb3JFeGlzdFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zaGFyZWQvZXJyb3ItaGFuZGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPOUMsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixnQkFBZ0IsQ0FBQztJQUVuQixXQUFXLENBQUMsR0FBc0I7UUFDaEMsSUFBSSxZQUFvQixDQUFDO1FBRXhCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNOLE9BQU8sVUFBVSxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVMLHFEQUFxRDtRQUNyRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLFlBQVksVUFBVSxFQUFFLENBQUM7WUFDcEMsWUFBWSxHQUFHLHNCQUFzQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNELENBQUM7YUFBTSxDQUFDO1lBQ04sNkNBQTZDO1lBQzdDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDbkUsSUFBSSxDQUFDO29CQUNILGlDQUFpQztvQkFDakMsTUFBTSxXQUFXLEdBQUcsT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7b0JBQ3RGLElBQUcsV0FBVyxFQUFDLENBQUM7d0JBQ2QsSUFBSSxXQUFXLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7NEJBQzdELFlBQVksR0FBRyx1QkFBdUIsQ0FBQzt3QkFDekMsQ0FBQzs2QkFBTSxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQzs0QkFDN0IsSUFBRyxXQUFXLENBQUMsS0FBSyxJQUFHLFNBQVMsSUFBSSxXQUFXLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBQyxDQUFDO2dDQUNoRSxZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQzs0QkFDckMsQ0FBQztpQ0FBSSxDQUFDO2dDQUNKLFlBQVksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDOzRCQUNyQyxDQUFDO3dCQUNMLENBQUM7NkJBQU0sSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7NEJBQzdCLFlBQVksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO3dCQUNuQyxDQUFDOzZCQUFNLENBQUM7NEJBQ04sTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQzs0QkFDakQsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQzs0QkFDekQsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0NBQ3RCLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQzFCLENBQUM7aUNBQU0sQ0FBQztnQ0FDTiw4Q0FBOEM7Z0NBQzlDLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDOzRCQUMzQixDQUFDO3dCQUNILENBQUM7b0JBQ0gsQ0FBQzt5QkFBSSxDQUFDO3dCQUNKLFlBQVksR0FBRyw4QkFBOEIsQ0FBQztvQkFDaEQsQ0FBQztnQkFDSCxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1gsNEJBQTRCO29CQUM1QixZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDM0IsQ0FBQztZQUNILENBQUM7aUJBQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUM5QixZQUFZLEdBQUcsdUJBQXVCLENBQUM7WUFDekMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLDBDQUEwQztnQkFDMUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDaEQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBTUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLGNBQWMsR0FBRyxLQUFLLEVBQUUsS0FBSyxHQUFDLEVBQUU7UUFDbEUsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1FBQy9ELE9BQU87WUFDTCxLQUFLLEVBQUUscUNBQXFDO1lBQzVDLElBQUksRUFBRSxXQUFXO1lBQ2pCLFNBQVMsRUFBRSxZQUFZO1NBQ3hCLENBQUM7SUFDSixDQUFDO3VHQXJFVSxtQkFBbUI7MkdBQW5CLG1CQUFtQixjQUpsQixNQUFNOzsyRkFJUCxtQkFBbUI7a0JBTC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuXG5cbmV4cG9ydCBjbGFzcyBFcnJvckhhbmRsZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG5oYW5kbGVFcnJvcihlcnI6IEh0dHBFcnJvclJlc3BvbnNlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gICBpZiAoIWVycikge1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCcpO1xuICAgICAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBlcnJvciBpcyBjbGllbnQtc2lkZSBvciBuZXR3b3JrIGVycm9yXG4gIGlmIChlcnIuZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XG4gICAgZXJyb3JNZXNzYWdlID0gYEFuIGVycm9yIG9jY3VycmVkOiAke2Vyci5lcnJvci5tZXNzYWdlfWA7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlIGVycm9yIGlzIGZyb20gdGhlIHNlcnZlci1zaWRlXG4gICAgaWYgKGVyci5zdGF0dXMgPT09IDQwMCB8fCBlcnIuc3RhdHVzID09PSA0MDQgfHwgZXJyLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBBdHRlbXB0IHRvIHBhcnNlIGVycm9yIGFzIEpTT05cbiAgICAgICAgY29uc3QgcGFyc2VkRXJyb3IgPSB0eXBlb2YgZXJyLmVycm9yID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UoZXJyLmVycm9yKSA6IGVyci5lcnJvcjtcbiAgICAgICAgaWYocGFyc2VkRXJyb3Ipe1xuICAgICAgICAgIGlmIChwYXJzZWRFcnJvci5zdGF0dXNDb2RlICYmIHBhcnNlZEVycm9yLnN0YXR1c0NvZGUgPT09IDUwMCkge1xuICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgICAgICAgfSBlbHNlIGlmIChwYXJzZWRFcnJvci5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgIGlmKHBhcnNlZEVycm9yLmVycm9yICE9dW5kZWZpbmVkICYmIHBhcnNlZEVycm9yLnN0YXR1c0NvZGUgPT09IDQwMCl7XG4gICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBwYXJzZWRFcnJvci5lcnJvcjtcbiAgICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gcGFyc2VkRXJyb3IubWVzc2FnZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAocGFyc2VkRXJyb3IuZXJyb3IpIHtcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IHBhcnNlZEVycm9yLmVycm9yO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2VQYXR0ZXJuID0gL15cXGQrXFxzLVxcc1xcXCIoLispXFxcIiQvO1xuICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSBwYXJzZWRFcnJvci5lcnIubWF0Y2goZXJyb3JNZXNzYWdlUGF0dGVybik7XG4gICAgICAgICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMV0pIHtcbiAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gbWF0Y2hbMV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBGYWxsYmFjayBpbiBjYXNlIHRoZSBwYXR0ZXJuIGRvZXMgbm90IG1hdGNoXG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGVyci5lcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkJztcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBGYWxsYmFjayBpZiBwYXJzaW5nIGZhaWxzXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGVyci5lcnJvcjtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGVyci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgZXJyb3JNZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEdlbmVyYWwgZmFsbGJhY2sgZm9yIG90aGVyIHN0YXR1cyBjb2Rlc1xuICAgICAgZXJyb3JNZXNzYWdlID0gZXJyLmVycm9yLm1lc3NhZ2UgfHwgZXJyLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdGhyb3dFcnJvcihlcnJvck1lc3NhZ2UpO1xufVxuXG5cblxuXG5cbiAgZ2V0U2VydmVyRXJyb3JNZXNzYWdlKGlzRXJyb3JFeGlzdCwgaXNEYXRhTm90RXhpc3QgPSBmYWxzZSwgZXJyb3I9JycpIHtcbiAgICBjb25zdCBib2R5Q29udGVudCA9IGlzRGF0YU5vdEV4aXN0ID8gZXJyb3IgOiAnVHJ5IGFnYWluIGxhdGVyJztcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6IFwiVGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggdGhlIHNlcnZpY2VcIixcbiAgICAgIGJvZHk6IGJvZHlDb250ZW50LFxuICAgICAgc2hvd0Vycm9yOiBpc0Vycm9yRXhpc3RcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -283,76 +283,61 @@ class ErrorHandlerService {
283
283
  constructor() { }
284
284
  handleError(err) {
285
285
  let errorMessage;
286
- if (err.error instanceof Error) {
287
- // A client-side or network error occurred.
286
+ if (!err) {
287
+ return throwError('An unexpected error occurred');
288
+ }
289
+ // Check if the error is client-side or network error
290
+ if (err.error instanceof ErrorEvent) {
288
291
  errorMessage = `An error occurred: ${err.error.message}`;
289
292
  }
290
293
  else {
291
- // The backend returned an unsuccessful response code.
292
- if (err.status === 404) {
293
- if (typeof err.error === 'string' && err.error !== undefined) {
294
- if (err.error.length > 60) {
295
- if (JSON.parse(err.error).statusCode !== undefined && JSON.parse(err.error).statusCode === 500) {
294
+ // Check if the error is from the server-side
295
+ if (err.status === 400 || err.status === 404 || err.status === 500) {
296
+ try {
297
+ // Attempt to parse error as JSON
298
+ const parsedError = typeof err.error === 'string' ? JSON.parse(err.error) : err.error;
299
+ if (parsedError) {
300
+ if (parsedError.statusCode && parsedError.statusCode === 500) {
296
301
  errorMessage = 'Internal server error';
297
302
  }
303
+ else if (parsedError.message) {
304
+ if (parsedError.error != undefined && parsedError.statusCode === 400) {
305
+ errorMessage = parsedError.error;
306
+ }
307
+ else {
308
+ errorMessage = parsedError.message;
309
+ }
310
+ }
311
+ else if (parsedError.error) {
312
+ errorMessage = parsedError.error;
313
+ }
298
314
  else {
299
- if (err.error.length > 60) {
300
- const parsedError = JSON.parse(err.error);
301
- errorMessage = parsedError.err;
315
+ const errorMessagePattern = /^\d+\s-\s\"(.+)\"$/;
316
+ const match = parsedError.err.match(errorMessagePattern);
317
+ if (match && match[1]) {
318
+ errorMessage = match[1];
302
319
  }
303
320
  else {
321
+ // Fallback in case the pattern does not match
304
322
  errorMessage = err.error;
305
323
  }
306
324
  }
307
325
  }
308
326
  else {
309
- errorMessage = err.error;
327
+ errorMessage = 'An unexpected error occurred';
310
328
  }
311
329
  }
312
- else {
313
- errorMessage = JSON.parse(err.error).error;
330
+ catch (e) {
331
+ // Fallback if parsing fails
332
+ errorMessage = err.error;
314
333
  }
315
334
  }
316
335
  else if (err.status === 500) {
317
336
  errorMessage = 'Internal server error';
318
337
  }
319
- else if (err.error.messsage === undefined) {
320
- if (typeof err.error === 'object') {
321
- errorMessage = JSON.parse(JSON.stringify(err.error)).error;
322
- }
323
- else {
324
- if (typeof err.error === 'string' && err.error !== undefined) {
325
- if (err.error.length > 60) {
326
- if (JSON.parse(err.error).statusCode !== undefined && JSON.parse(err.error).statusCode === 500) {
327
- errorMessage = 'Internal server error';
328
- }
329
- else {
330
- if (err.error.length > 60) {
331
- const parsedError = JSON.parse(err.error);
332
- errorMessage = parsedError.err;
333
- }
334
- else {
335
- errorMessage = err.error;
336
- }
337
- }
338
- }
339
- else {
340
- errorMessage = err.error;
341
- }
342
- }
343
- else {
344
- const parsedError = JSON.parse(err.error);
345
- errorMessage = parsedError.err;
346
- }
347
- }
348
- }
349
338
  else {
350
- if (err.error.message !== undefined) {
351
- errorMessage = `${err.error.message}`;
352
- }
353
- else {
354
- errorMessage = `${err.error}`;
355
- }
339
+ // General fallback for other status codes
340
+ errorMessage = err.error.message || err.error;
356
341
  }
357
342
  }
358
343
  return throwError(errorMessage);
@@ -2494,11 +2479,15 @@ class CaseTransactionsComponent {
2494
2479
  calculateOverpaymentBaseOnAcceptedRefund() {
2495
2480
  this.paymentGroups.forEach(paymentGroup => {
2496
2481
  if (paymentGroup.refunds != null && paymentGroup.refunds.length > 0) {
2497
- console.log("aca1 !!!");
2498
2482
  paymentGroup.refunds.forEach(refund => {
2499
- console.log("aca2 !!!" + refund.refund_status.name);
2500
2483
  if (refund.refund_status.name === 'Accepted') {
2501
- this.overPaymentAmount = this.overPaymentAmount - refund.amount;
2484
+ let newValue = this.overPaymentAmount - refund.amount;
2485
+ if (newValue < 0) {
2486
+ this.overPaymentAmount = 0;
2487
+ }
2488
+ else {
2489
+ this.overPaymentAmount = newValue;
2490
+ }
2502
2491
  }
2503
2492
  });
2504
2493
  }