@hmcts/ccpay-web-component 6.2.1 → 6.2.2-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,45 @@ 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
+ // Check if the error is client-side or network error
9
+ if (err.error instanceof ErrorEvent) {
10
10
  errorMessage = `An error occurred: ${err.error.message}`;
11
11
  }
12
12
  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) {
18
- errorMessage = 'Internal server error';
13
+ // Check if the error is from the server-side
14
+ if (err.status === 400 || err.status === 404) {
15
+ try {
16
+ // Attempt to parse error as JSON
17
+ const parsedError = typeof err.error === 'string' ? JSON.parse(err.error) : err.error;
18
+ if (parsedError.statusCode && parsedError.statusCode === 500) {
19
+ errorMessage = 'Internal server error';
20
+ }
21
+ else if (parsedError.message) {
22
+ if (parsedError.error != undefined && parsedError.statusCode === 400) {
23
+ errorMessage = parsedError.error;
19
24
  }
20
25
  else {
21
- if (err.error.length > 60) {
22
- const parsedError = JSON.parse(err.error);
23
- errorMessage = parsedError.err;
24
- }
25
- else {
26
- errorMessage = err.error;
27
- }
26
+ errorMessage = parsedError.message;
28
27
  }
29
28
  }
29
+ else if (parsedError.error) {
30
+ errorMessage = parsedError.error;
31
+ }
30
32
  else {
31
33
  errorMessage = err.error;
32
34
  }
33
35
  }
34
- else {
35
- errorMessage = JSON.parse(err.error).error;
36
+ catch (e) {
37
+ // Fallback if parsing fails
38
+ errorMessage = err.error;
36
39
  }
37
40
  }
38
41
  else if (err.status === 500) {
39
42
  errorMessage = 'Internal server error';
40
43
  }
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
44
  else {
72
- if (err.error.message !== undefined) {
73
- errorMessage = `${err.error.message}`;
74
- }
75
- else {
76
- errorMessage = `${err.error}`;
77
- }
45
+ // General fallback for other status codes
46
+ errorMessage = err.error.message || err.error;
78
47
  }
79
48
  }
80
49
  return throwError(errorMessage);
@@ -96,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
96
65
  providedIn: 'root'
97
66
  }]
98
67
  }], ctorParameters: () => [] });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zaGFyZWQvZXJyb3ItaGFuZGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPOUMsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixnQkFBZ0IsQ0FBQztJQUdqQixXQUFXLENBQUMsR0FBc0I7UUFDaEMsSUFBSSxZQUFvQixDQUFDO1FBQ3pCLElBQUksR0FBRyxDQUFDLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztZQUMvQiwyQ0FBMkM7WUFDM0MsWUFBWSxHQUFHLHNCQUFzQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNELENBQUM7YUFBTSxDQUFDO1lBQ04sc0RBQXNEO1lBQ3RELElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFFdkIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFLLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBRTdELElBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7d0JBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUM5RixDQUFDOzRCQUNDLFlBQVksR0FBRyx1QkFBdUIsQ0FBQzt3QkFDekMsQ0FBQzs2QkFBTSxDQUFDOzRCQUNOLElBQUcs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bEMsQ0FBQztJQUdELHFCQUFxQixDQUFDLFlBQVksRUFBRSxjQUFjLEdBQUcsS0FBSyxFQUFFLEtBQUssR0FBQyxFQUFFO1FBQ2xFLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUMvRCxPQUFPO1lBQ0wsS0FBSyxFQUFFLHFDQUFxQztZQUM1QyxJQUFJLEVBQUUsV0FBVztZQUNqQixTQUFTLEVBQUUsWUFBWTtTQUN4QixDQUFDO0lBQ0osQ0FBQzt1R0F4RlUsbUJBQW1COzJHQUFuQixtQkFBbUIsY0FKbEIsTUFBTTs7MkZBSVAsbUJBQW1CO2tCQUwvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcblxuXG5leHBvcnQgY2xhc3MgRXJyb3JIYW5kbGVyU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuXG4gIGhhbmRsZUVycm9yKGVycjogSHR0cEVycm9yUmVzcG9uc2UpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgICBpZiAoZXJyLmVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIC8vIEEgY2xpZW50LXNpZGUgb3IgbmV0d29yayBlcnJvciBvY2N1cnJlZC5cbiAgICAgIGVycm9yTWVzc2FnZSA9IGBBbiBlcnJvciBvY2N1cnJlZDogJHtlcnIuZXJyb3IubWVzc2FnZX1gO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGUgYmFja2VuZCByZXR1cm5lZCBhbiB1bnN1Y2Nlc3NmdWwgcmVzcG9uc2UgY29kZS5cbiAgICAgIGlmIChlcnIuc3RhdHVzID09PSA0MDQpIHtcblxuICAgICAgICBpZiAodHlwZW9mIGVyci5lcnJvciA9PT0gJ3N0cmluZycgJiYgZXJyLmVycm9yICE9PSB1bmRlZmluZWQpIHtcblxuICAgICAgICAgIGlmKGVyci5lcnJvci5sZW5ndGggPiA2MCkge1xuICAgICAgICAgICAgaWYgKEpTT04ucGFyc2UoZXJyLmVycm9yKS5zdGF0dXNDb2RlICE9PSB1bmRlZmluZWQgJiYgSlNPTi5wYXJzZShlcnIuZXJyb3IpLnN0YXR1c0NvZGUgPT09IDUwMClcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZihlcnIuZXJyb3IubGVuZ3RoID4gNjApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRFcnJvciA9IEpTT04ucGFyc2UoZXJyLmVycm9yKTtcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAgcGFyc2VkRXJyb3IuZXJyO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICBlcnIuZXJyb3I7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAgZXJyLmVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAgSlNPTi5wYXJzZShlcnIuZXJyb3IpLmVycm9yO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGVyci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSAnSW50ZXJuYWwgc2VydmVyIGVycm9yJztcbiAgICAgIH0gZWxzZSBpZiAoZXJyLmVycm9yLm1lc3NzYWdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYoIHR5cGVvZiBlcnIuZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZXJyLmVycm9yKSkuZXJyb3I7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBlcnIuZXJyb3IgPT09ICdzdHJpbmcnICYmIGVyci5lcnJvciAhPT0gdW5kZWZpbmVkKSB7XG5cbiAgICAgICAgICAgIGlmKGVyci5lcnJvci5sZW5ndGggPiA2MCkge1xuICAgICAgICAgICAgICBpZiAoSlNPTi5wYXJzZShlcnIuZXJyb3IpLnN0YXR1c0NvZGUgIT09IHVuZGVmaW5lZCAmJiBKU09OLnBhcnNlKGVyci5lcnJvcikuc3RhdHVzQ29kZSA9PT0gNTAwKVxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYoZXJyLmVycm9yLmxlbmd0aCA+IDYwKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRFcnJvciA9IEpTT04ucGFyc2UoZXJyLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICBwYXJzZWRFcnJvci5lcnI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICBlcnIuZXJyb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICBlcnIuZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZEVycm9yID0gSlNPTi5wYXJzZShlcnIuZXJyb3IpO1xuICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIHBhcnNlZEVycm9yLmVycjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXJyLmVycm9yLm1lc3NhZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2Vyci5lcnJvci5tZXNzYWdlfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZXJyLmVycm9yfWA7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvck1lc3NhZ2UpO1xuICB9XG5cblxuICBnZXRTZXJ2ZXJFcnJvck1lc3NhZ2UoaXNFcnJvckV4aXN0LCBpc0RhdGFOb3RFeGlzdCA9IGZhbHNlLCBlcnJvcj0nJykge1xuICAgIGNvbnN0IGJvZHlDb250ZW50ID0gaXNEYXRhTm90RXhpc3QgPyBlcnJvciA6ICdUcnkgYWdhaW4gbGF0ZXInO1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogXCJUaGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgc2VydmljZVwiLFxuICAgICAgYm9keTogYm9keUNvbnRlbnQsXG4gICAgICBzaG93RXJyb3I6IGlzRXJyb3JFeGlzdFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zaGFyZWQvZXJyb3ItaGFuZGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPOUMsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixnQkFBZ0IsQ0FBQztJQUVuQixXQUFXLENBQUMsR0FBc0I7UUFDaEMsSUFBSSxZQUFvQixDQUFDO1FBRXpCLHFEQUFxRDtRQUNyRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLFlBQVksVUFBVSxFQUFFLENBQUM7WUFDcEMsWUFBWSxHQUFHLHNCQUFzQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNELENBQUM7YUFBTSxDQUFDO1lBQ04sNkNBQTZDO1lBQzdDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDO29CQUNILGlDQUFpQztvQkFDakMsTUFBTSxXQUFXLEdBQUcsT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7b0JBRXRGLElBQUksV0FBVyxDQUFDLFVBQVUsSUFBSSxXQUFXLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO3dCQUM3RCxZQUFZLEdBQUcsdUJBQXVCLENBQUM7b0JBQ3pDLENBQUM7eUJBQU0sSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQzdCLElBQUcsV0FBVyxDQUFDLEtBQUssSUFBRyxTQUFTLElBQUksV0FBVyxDQUFDLFVBQVUsS0FBSyxHQUFHLEVBQUMsQ0FBQzs0QkFDaEUsWUFBWSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7d0JBQ3JDLENBQUM7NkJBQUksQ0FBQzs0QkFDSixZQUFZLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQzt3QkFDckMsQ0FBQztvQkFDTCxDQUFDO3lCQUFNLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUM3QixZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQztvQkFDbkMsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO29CQUMzQixDQUFDO2dCQUNILENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDWCw0QkFBNEI7b0JBQzVCLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUMzQixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQzlCLFlBQVksR0FBRyx1QkFBdUIsQ0FBQztZQUN6QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sMENBQTBDO2dCQUMxQyxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQztZQUNoRCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFNQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsY0FBYyxHQUFHLEtBQUssRUFBRSxLQUFLLEdBQUMsRUFBRTtRQUNsRSxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUM7UUFDL0QsT0FBTztZQUNMLEtBQUssRUFBRSxxQ0FBcUM7WUFDNUMsSUFBSSxFQUFFLFdBQVc7WUFDakIsU0FBUyxFQUFFLFlBQVk7U0FDeEIsQ0FBQztJQUNKLENBQUM7dUdBdkRVLG1CQUFtQjsyR0FBbkIsbUJBQW1CLGNBSmxCLE1BQU07OzJGQUlQLG1CQUFtQjtrQkFML0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5cblxuZXhwb3J0IGNsYXNzIEVycm9ySGFuZGxlclNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbmhhbmRsZUVycm9yKGVycjogSHR0cEVycm9yUmVzcG9uc2UpOiBPYnNlcnZhYmxlPGFueT4ge1xuICBsZXQgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGVycm9yIGlzIGNsaWVudC1zaWRlIG9yIG5ldHdvcmsgZXJyb3JcbiAgaWYgKGVyci5lcnJvciBpbnN0YW5jZW9mIEVycm9yRXZlbnQpIHtcbiAgICBlcnJvck1lc3NhZ2UgPSBgQW4gZXJyb3Igb2NjdXJyZWQ6ICR7ZXJyLmVycm9yLm1lc3NhZ2V9YDtcbiAgfSBlbHNlIHtcbiAgICAvLyBDaGVjayBpZiB0aGUgZXJyb3IgaXMgZnJvbSB0aGUgc2VydmVyLXNpZGVcbiAgICBpZiAoZXJyLnN0YXR1cyA9PT0gNDAwIHx8IGVyci5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gQXR0ZW1wdCB0byBwYXJzZSBlcnJvciBhcyBKU09OXG4gICAgICAgIGNvbnN0IHBhcnNlZEVycm9yID0gdHlwZW9mIGVyci5lcnJvciA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGVyci5lcnJvcikgOiBlcnIuZXJyb3I7XG5cbiAgICAgICAgaWYgKHBhcnNlZEVycm9yLnN0YXR1c0NvZGUgJiYgcGFyc2VkRXJyb3Iuc3RhdHVzQ29kZSA9PT0gNTAwKSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgICAgIH0gZWxzZSBpZiAocGFyc2VkRXJyb3IubWVzc2FnZSkge1xuICAgICAgICAgICAgaWYocGFyc2VkRXJyb3IuZXJyb3IgIT11bmRlZmluZWQgJiYgcGFyc2VkRXJyb3Iuc3RhdHVzQ29kZSA9PT0gNDAwKXtcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBwYXJzZWRFcnJvci5lcnJvcjtcbiAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBwYXJzZWRFcnJvci5tZXNzYWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHBhcnNlZEVycm9yLmVycm9yKSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gcGFyc2VkRXJyb3IuZXJyb3I7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJyLmVycm9yO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIEZhbGxiYWNrIGlmIHBhcnNpbmcgZmFpbHNcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJyLmVycm9yO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZXJyLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSAnSW50ZXJuYWwgc2VydmVyIGVycm9yJztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gR2VuZXJhbCBmYWxsYmFjayBmb3Igb3RoZXIgc3RhdHVzIGNvZGVzXG4gICAgICBlcnJvck1lc3NhZ2UgPSBlcnIuZXJyb3IubWVzc2FnZSB8fCBlcnIuZXJyb3I7XG4gICAgfVxuICB9XG4gIHJldHVybiB0aHJvd0Vycm9yKGVycm9yTWVzc2FnZSk7XG59XG5cblxuXG5cblxuICBnZXRTZXJ2ZXJFcnJvck1lc3NhZ2UoaXNFcnJvckV4aXN0LCBpc0RhdGFOb3RFeGlzdCA9IGZhbHNlLCBlcnJvcj0nJykge1xuICAgIGNvbnN0IGJvZHlDb250ZW50ID0gaXNEYXRhTm90RXhpc3QgPyBlcnJvciA6ICdUcnkgYWdhaW4gbGF0ZXInO1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogXCJUaGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgc2VydmljZVwiLFxuICAgICAgYm9keTogYm9keUNvbnRlbnQsXG4gICAgICBzaG93RXJyb3I6IGlzRXJyb3JFeGlzdFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -283,76 +283,45 @@ 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
+ // Check if the error is client-side or network error
287
+ if (err.error instanceof ErrorEvent) {
288
288
  errorMessage = `An error occurred: ${err.error.message}`;
289
289
  }
290
290
  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) {
296
- errorMessage = 'Internal server error';
291
+ // Check if the error is from the server-side
292
+ if (err.status === 400 || err.status === 404) {
293
+ try {
294
+ // Attempt to parse error as JSON
295
+ const parsedError = typeof err.error === 'string' ? JSON.parse(err.error) : err.error;
296
+ if (parsedError.statusCode && parsedError.statusCode === 500) {
297
+ errorMessage = 'Internal server error';
298
+ }
299
+ else if (parsedError.message) {
300
+ if (parsedError.error != undefined && parsedError.statusCode === 400) {
301
+ errorMessage = parsedError.error;
297
302
  }
298
303
  else {
299
- if (err.error.length > 60) {
300
- const parsedError = JSON.parse(err.error);
301
- errorMessage = parsedError.err;
302
- }
303
- else {
304
- errorMessage = err.error;
305
- }
304
+ errorMessage = parsedError.message;
306
305
  }
307
306
  }
307
+ else if (parsedError.error) {
308
+ errorMessage = parsedError.error;
309
+ }
308
310
  else {
309
311
  errorMessage = err.error;
310
312
  }
311
313
  }
312
- else {
313
- errorMessage = JSON.parse(err.error).error;
314
+ catch (e) {
315
+ // Fallback if parsing fails
316
+ errorMessage = err.error;
314
317
  }
315
318
  }
316
319
  else if (err.status === 500) {
317
320
  errorMessage = 'Internal server error';
318
321
  }
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
322
  else {
350
- if (err.error.message !== undefined) {
351
- errorMessage = `${err.error.message}`;
352
- }
353
- else {
354
- errorMessage = `${err.error}`;
355
- }
323
+ // General fallback for other status codes
324
+ errorMessage = err.error.message || err.error;
356
325
  }
357
326
  }
358
327
  return throwError(errorMessage);