import { Injectable } from '@angular/core'; import { Observable, Subject } from 'rxjs'; import { HttpErrorResponse } from '@angular/common/http'; import { ErrorModel } from '../../models/error-model'; import { ERROR_TYPES } from '../../models/errors'; @Injectable({ providedIn: 'root' }) export class ErrorsService { errorSubject$: Subject = new Subject(); public updateError(key: ERROR_TYPES, passedError?: HttpErrorResponse, addition?: Map): void { const errorModel = new ErrorModel(key, passedError, addition); this.updateErrorSubject(errorModel); } getError(): Observable { return this.errorSubject$.asObservable(); } private updateErrorSubject(errorToShow: ErrorModel) { this.errorSubject$.next(errorToShow); } }