@hmcts/ccpay-web-component 6.2.2-beta3 → 6.2.2-beta5

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,32 +5,40 @@ export class ErrorHandlerService {
5
5
  constructor() { }
6
6
  handleError(err) {
7
7
  let errorMessage;
8
+ if (!err) {
9
+ return throwError('An unexpected error occurred');
10
+ }
8
11
  // Check if the error is client-side or network error
9
12
  if (err.error instanceof ErrorEvent) {
10
13
  errorMessage = `An error occurred: ${err.error.message}`;
11
14
  }
12
15
  else {
13
16
  // Check if the error is from the server-side
14
- if (err.status === 400 || err.status === 404) {
17
+ if (err.status === 400 || err.status === 404 || err.status === 500) {
15
18
  try {
16
19
  // Attempt to parse error as JSON
17
20
  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) {
21
+ if (parsedError) {
22
+ if (parsedError.statusCode && parsedError.statusCode === 500) {
23
+ errorMessage = 'Internal server error';
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) {
23
34
  errorMessage = parsedError.error;
24
35
  }
25
36
  else {
26
- errorMessage = parsedError.message;
37
+ errorMessage = err.error;
27
38
  }
28
39
  }
29
- else if (parsedError.error) {
30
- errorMessage = parsedError.error;
31
- }
32
40
  else {
33
- errorMessage = err.error;
41
+ errorMessage = 'An unexpected error occurred';
34
42
  }
35
43
  }
36
44
  catch (e) {
@@ -65,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
65
73
  providedIn: 'root'
66
74
  }]
67
75
  }], ctorParameters: () => [] });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zaGFyZWQvZXJyb3ItaGFuZGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPOUMsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixnQkFBZ0IsQ0FBQztJQUVuQixXQUFXLENBQUMsR0FBc0I7UUFDaEMsSUFBSSxZQUFvQixDQUFDO1FBRXpCLHFEQUFxRDtRQUNyRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLFlBQVksVUFBVSxFQUFFLENBQUM7WUFDcEMsWUFBWSxHQUFHLHNCQUFzQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNELENBQUM7YUFBTSxDQUFDO1lBQ04sNkNBQTZDO1lBQzdDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDO29CQUNILGlDQUFpQztvQkFDakMsTUFBTSxXQUFXLEdBQUcsT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7b0JBRXRGLElBQUksV0FBVyxDQUFDLFVBQVUsSUFBSSxXQUFXLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO3dCQUM3RCxZQUFZLEdBQUcsdUJBQXVCLENBQUM7b0JBQ3pDLENBQUM7eUJBQU0sSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQzdCLElBQUcsV0FBVyxDQUFDLEtBQUssSUFBRyxTQUFTLElBQUksV0FBVyxDQUFDLFVBQVUsS0FBSyxHQUFHLEVBQUMsQ0FBQzs0QkFDaEUsWUFBWSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7d0JBQ3JDLENBQUM7NkJBQUksQ0FBQzs0QkFDSixZQUFZLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQzt3QkFDckMsQ0FBQztvQkFDTCxDQUFDO3lCQUFNLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUM3QixZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQztvQkFDbkMsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO29CQUMzQixDQUFDO2dCQUNILENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDWCw0QkFBNEI7b0JBQzVCLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUMzQixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQzlCLFlBQVksR0FBRyx1QkFBdUIsQ0FBQztZQUN6QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sMENBQTBDO2dCQUMxQyxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQztZQUNoRCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFNQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsY0FBYyxHQUFHLEtBQUssRUFBRSxLQUFLLEdBQUMsRUFBRTtRQUNsRSxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUM7UUFDL0QsT0FBTztZQUNMLEtBQUssRUFBRSxxQ0FBcUM7WUFDNUMsSUFBSSxFQUFFLFdBQVc7WUFDakIsU0FBUyxFQUFFLFlBQVk7U0FDeEIsQ0FBQztJQUNKLENBQUM7dUdBdkRVLG1CQUFtQjsyR0FBbkIsbUJBQW1CLGNBSmxCLE1BQU07OzJGQUlQLG1CQUFtQjtrQkFML0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5cblxuZXhwb3J0IGNsYXNzIEVycm9ySGFuZGxlclNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbmhhbmRsZUVycm9yKGVycjogSHR0cEVycm9yUmVzcG9uc2UpOiBPYnNlcnZhYmxlPGFueT4ge1xuICBsZXQgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGVycm9yIGlzIGNsaWVudC1zaWRlIG9yIG5ldHdvcmsgZXJyb3JcbiAgaWYgKGVyci5lcnJvciBpbnN0YW5jZW9mIEVycm9yRXZlbnQpIHtcbiAgICBlcnJvck1lc3NhZ2UgPSBgQW4gZXJyb3Igb2NjdXJyZWQ6ICR7ZXJyLmVycm9yLm1lc3NhZ2V9YDtcbiAgfSBlbHNlIHtcbiAgICAvLyBDaGVjayBpZiB0aGUgZXJyb3IgaXMgZnJvbSB0aGUgc2VydmVyLXNpZGVcbiAgICBpZiAoZXJyLnN0YXR1cyA9PT0gNDAwIHx8IGVyci5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gQXR0ZW1wdCB0byBwYXJzZSBlcnJvciBhcyBKU09OXG4gICAgICAgIGNvbnN0IHBhcnNlZEVycm9yID0gdHlwZW9mIGVyci5lcnJvciA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGVyci5lcnJvcikgOiBlcnIuZXJyb3I7XG5cbiAgICAgICAgaWYgKHBhcnNlZEVycm9yLnN0YXR1c0NvZGUgJiYgcGFyc2VkRXJyb3Iuc3RhdHVzQ29kZSA9PT0gNTAwKSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgICAgIH0gZWxzZSBpZiAocGFyc2VkRXJyb3IubWVzc2FnZSkge1xuICAgICAgICAgICAgaWYocGFyc2VkRXJyb3IuZXJyb3IgIT11bmRlZmluZWQgJiYgcGFyc2VkRXJyb3Iuc3RhdHVzQ29kZSA9PT0gNDAwKXtcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBwYXJzZWRFcnJvci5lcnJvcjtcbiAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBwYXJzZWRFcnJvci5tZXNzYWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHBhcnNlZEVycm9yLmVycm9yKSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gcGFyc2VkRXJyb3IuZXJyb3I7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJyLmVycm9yO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIEZhbGxiYWNrIGlmIHBhcnNpbmcgZmFpbHNcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJyLmVycm9yO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZXJyLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSAnSW50ZXJuYWwgc2VydmVyIGVycm9yJztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gR2VuZXJhbCBmYWxsYmFjayBmb3Igb3RoZXIgc3RhdHVzIGNvZGVzXG4gICAgICBlcnJvck1lc3NhZ2UgPSBlcnIuZXJyb3IubWVzc2FnZSB8fCBlcnIuZXJyb3I7XG4gICAgfVxuICB9XG4gIHJldHVybiB0aHJvd0Vycm9yKGVycm9yTWVzc2FnZSk7XG59XG5cblxuXG5cblxuICBnZXRTZXJ2ZXJFcnJvck1lc3NhZ2UoaXNFcnJvckV4aXN0LCBpc0RhdGFOb3RFeGlzdCA9IGZhbHNlLCBlcnJvcj0nJykge1xuICAgIGNvbnN0IGJvZHlDb250ZW50ID0gaXNEYXRhTm90RXhpc3QgPyBlcnJvciA6ICdUcnkgYWdhaW4gbGF0ZXInO1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogXCJUaGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgc2VydmljZVwiLFxuICAgICAgYm9keTogYm9keUNvbnRlbnQsXG4gICAgICBzaG93RXJyb3I6IGlzRXJyb3JFeGlzdFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zaGFyZWQvZXJyb3ItaGFuZGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPOUMsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixnQkFBZ0IsQ0FBQztJQUVuQixXQUFXLENBQUMsR0FBc0I7UUFDaEMsSUFBSSxZQUFvQixDQUFDO1FBRXhCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNOLE9BQU8sVUFBVSxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVMLHFEQUFxRDtRQUNyRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLFlBQVksVUFBVSxFQUFFLENBQUM7WUFDcEMsWUFBWSxHQUFHLHNCQUFzQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNELENBQUM7YUFBTSxDQUFDO1lBQ04sNkNBQTZDO1lBQzdDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDbkUsSUFBSSxDQUFDO29CQUNILGlDQUFpQztvQkFDakMsTUFBTSxXQUFXLEdBQUcsT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7b0JBQ3RGLElBQUcsV0FBVyxFQUFDLENBQUM7d0JBQ2QsSUFBSSxXQUFXLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7NEJBQzdELFlBQVksR0FBRyx1QkFBdUIsQ0FBQzt3QkFDekMsQ0FBQzs2QkFBTSxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQzs0QkFDN0IsSUFBRyxXQUFXLENBQUMsS0FBSyxJQUFHLFNBQVMsSUFBSSxXQUFXLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBQyxDQUFDO2dDQUNoRSxZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQzs0QkFDckMsQ0FBQztpQ0FBSSxDQUFDO2dDQUNKLFlBQVksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDOzRCQUNyQyxDQUFDO3dCQUNMLENBQUM7NkJBQU0sSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7NEJBQzdCLFlBQVksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO3dCQUNuQyxDQUFDOzZCQUFNLENBQUM7NEJBQ04sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7d0JBQzNCLENBQUM7b0JBQ0gsQ0FBQzt5QkFBSSxDQUFDO3dCQUNKLFlBQVksR0FBRyw4QkFBOEIsQ0FBQztvQkFDaEQsQ0FBQztnQkFDSCxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1gsNEJBQTRCO29CQUM1QixZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDM0IsQ0FBQztZQUNILENBQUM7aUJBQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUM5QixZQUFZLEdBQUcsdUJBQXVCLENBQUM7WUFDekMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLDBDQUEwQztnQkFDMUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDaEQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBTUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLGNBQWMsR0FBRyxLQUFLLEVBQUUsS0FBSyxHQUFDLEVBQUU7UUFDbEUsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1FBQy9ELE9BQU87WUFDTCxLQUFLLEVBQUUscUNBQXFDO1lBQzVDLElBQUksRUFBRSxXQUFXO1lBQ2pCLFNBQVMsRUFBRSxZQUFZO1NBQ3hCLENBQUM7SUFDSixDQUFDO3VHQTlEVSxtQkFBbUI7MkdBQW5CLG1CQUFtQixjQUpsQixNQUFNOzsyRkFJUCxtQkFBbUI7a0JBTC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuXG5cbmV4cG9ydCBjbGFzcyBFcnJvckhhbmRsZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG5oYW5kbGVFcnJvcihlcnI6IEh0dHBFcnJvclJlc3BvbnNlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gICBpZiAoIWVycikge1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCcpO1xuICAgICAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBlcnJvciBpcyBjbGllbnQtc2lkZSBvciBuZXR3b3JrIGVycm9yXG4gIGlmIChlcnIuZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XG4gICAgZXJyb3JNZXNzYWdlID0gYEFuIGVycm9yIG9jY3VycmVkOiAke2Vyci5lcnJvci5tZXNzYWdlfWA7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlIGVycm9yIGlzIGZyb20gdGhlIHNlcnZlci1zaWRlXG4gICAgaWYgKGVyci5zdGF0dXMgPT09IDQwMCB8fCBlcnIuc3RhdHVzID09PSA0MDQgfHwgZXJyLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBBdHRlbXB0IHRvIHBhcnNlIGVycm9yIGFzIEpTT05cbiAgICAgICAgY29uc3QgcGFyc2VkRXJyb3IgPSB0eXBlb2YgZXJyLmVycm9yID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UoZXJyLmVycm9yKSA6IGVyci5lcnJvcjtcbiAgICAgICAgaWYocGFyc2VkRXJyb3Ipe1xuICAgICAgICAgIGlmIChwYXJzZWRFcnJvci5zdGF0dXNDb2RlICYmIHBhcnNlZEVycm9yLnN0YXR1c0NvZGUgPT09IDUwMCkge1xuICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gICAgICAgICAgfSBlbHNlIGlmIChwYXJzZWRFcnJvci5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgIGlmKHBhcnNlZEVycm9yLmVycm9yICE9dW5kZWZpbmVkICYmIHBhcnNlZEVycm9yLnN0YXR1c0NvZGUgPT09IDQwMCl7XG4gICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBwYXJzZWRFcnJvci5lcnJvcjtcbiAgICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gcGFyc2VkRXJyb3IubWVzc2FnZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAocGFyc2VkRXJyb3IuZXJyb3IpIHtcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IHBhcnNlZEVycm9yLmVycm9yO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnIuZXJyb3I7XG4gICAgICAgICAgfVxuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCc7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gRmFsbGJhY2sgaWYgcGFyc2luZyBmYWlsc1xuICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnIuZXJyb3I7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChlcnIuc3RhdHVzID09PSA1MDApIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9ICdJbnRlcm5hbCBzZXJ2ZXIgZXJyb3InO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBHZW5lcmFsIGZhbGxiYWNrIGZvciBvdGhlciBzdGF0dXMgY29kZXNcbiAgICAgIGVycm9yTWVzc2FnZSA9IGVyci5lcnJvci5tZXNzYWdlIHx8IGVyci5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3JNZXNzYWdlKTtcbn1cblxuXG5cblxuXG4gIGdldFNlcnZlckVycm9yTWVzc2FnZShpc0Vycm9yRXhpc3QsIGlzRGF0YU5vdEV4aXN0ID0gZmFsc2UsIGVycm9yPScnKSB7XG4gICAgY29uc3QgYm9keUNvbnRlbnQgPSBpc0RhdGFOb3RFeGlzdCA/IGVycm9yIDogJ1RyeSBhZ2FpbiBsYXRlcic7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiBcIlRoZXJlIGlzIGEgcHJvYmxlbSB3aXRoIHRoZSBzZXJ2aWNlXCIsXG4gICAgICBib2R5OiBib2R5Q29udGVudCxcbiAgICAgIHNob3dFcnJvcjogaXNFcnJvckV4aXN0XG4gICAgfTtcbiAgfVxufVxuIl19
@@ -283,32 +283,40 @@ class ErrorHandlerService {
283
283
  constructor() { }
284
284
  handleError(err) {
285
285
  let errorMessage;
286
+ if (!err) {
287
+ return throwError('An unexpected error occurred');
288
+ }
286
289
  // Check if the error is client-side or network error
287
290
  if (err.error instanceof ErrorEvent) {
288
291
  errorMessage = `An error occurred: ${err.error.message}`;
289
292
  }
290
293
  else {
291
294
  // Check if the error is from the server-side
292
- if (err.status === 400 || err.status === 404) {
295
+ if (err.status === 400 || err.status === 404 || err.status === 500) {
293
296
  try {
294
297
  // Attempt to parse error as JSON
295
298
  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) {
299
+ if (parsedError) {
300
+ if (parsedError.statusCode && parsedError.statusCode === 500) {
301
+ errorMessage = 'Internal server error';
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) {
301
312
  errorMessage = parsedError.error;
302
313
  }
303
314
  else {
304
- errorMessage = parsedError.message;
315
+ errorMessage = err.error;
305
316
  }
306
317
  }
307
- else if (parsedError.error) {
308
- errorMessage = parsedError.error;
309
- }
310
318
  else {
311
- errorMessage = err.error;
319
+ errorMessage = 'An unexpected error occurred';
312
320
  }
313
321
  }
314
322
  catch (e) {