import { Injectable } from '@angular/core'; import { TranslateService } from '@ngx-translate/core'; import { HttpErrorResponse } from '@angular/common/http'; @Injectable({ providedIn: 'root', }) export class ErrorMessageService { constructor(private readonly _translateService: TranslateService) {} getMessage(error: HttpErrorResponse, defaultMessage?: string): string { return defaultMessage ? (this._translateService.instant(defaultMessage, { error: this._parseErrorResponse(error) }) as string) : this._parseErrorResponse(error); } private _parseErrorResponse(err: HttpErrorResponse): string { return ( (err?.error?.message?.match('"message":"(.*?)\\"')?.[0].replace(/"message":"|"/gm, '') as string) || (err?.error?.message as string) ); } }