1/** 2 * Copyright (C) 2018 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16import { HttpClient, HttpErrorResponse, HttpParams, HttpResponse } from '@angular/common/http'; 17import { Observable, throwError } from 'rxjs'; 18 19export class ServiceBase { 20 url: string; 21 protected constructor(public httpClient: HttpClient) { 22 } 23 protected handleError(error: HttpErrorResponse) { 24 if (error.error instanceof ErrorEvent) { 25 // A client-side or network error occurred. Handle it accordingly. 26 console.error('An error occurred:', error.error.message); 27 } else { 28 // The backend returned an unsuccessful response code. 29 // The response body may contain clues as to what went wrong, 30 console.error( 31 `Backend returned code ${error.status}, ` + 32 `body was: ${error.error}`); 33 } 34 // return an observable with a user-facing error message 35 return throwError(error); 36 } 37 public getCount(filterInfo: string): Observable<number> { 38 const url = this.url + 'count'; 39 return this.httpClient.post<number>(url, {filter: filterInfo}); 40 } 41} 42