import{ HttpClient, HttpErrorResponse }from'@angular/common/http';import{ Injectable }from'@angular/core';import{ Observable }from'rxjs/Observable';import{ catchError }from'rxjs/operators/catchError';import{TEMPLATE_API,ERROR_MESSAGE}from'../../app.constants';import{ map }from'rxjs/operators/map';import{ ErrorStore }from'../stores/error.store';import{ DomSanitizer, SafeUrl }from'@angular/platform-browser';import{ ErrorObservable }from'rxjs/observable/ErrorObservable';exportinterfaceILogoResponse{
logoUrl:string};
@Injectable()exportclassFILogoService{constructor(private http: HttpClient,private errorService: ErrorStore,private sanitizer: DomSanitizer,){}getlogo(routingNumber:string): Observable<SafeUrl>{returnthis.http.get<ILogoResponse>(`${TEMPLATE_API}/getlogo?routingNumber=${routingNumber}`).pipe(map(response =>{if(!response ||!response.logoUrl || response.logoUrl.length ===0){returnnull;}returnthis.sanitizer.bypassSecurityTrustResourceUrl(response.logoUrl);}),catchError(error =>{returnthis.handleError(error);}));}privatehandleError(error: HttpErrorResponse){if(error.error instanceofErrorEvent){// A client-side or network error occurred. Handle it accordingly.console.error('An error occurred:', error.error.message);}else{// The backend returned an unsuccessful response code.// The response body may contain clues as to what went wrong,console.error(`Backend returned code ${error.status}, `+`body was: ${error.error}`);}// return an ErrorObservable with a user-facing error messagereturnnewErrorObservable('Something bad happened; please try again later.');}}