| /** |
| * Copyright (C) 2018 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| import { HttpClient, HttpErrorResponse, HttpParams, HttpResponse } from '@angular/common/http'; |
| import { Observable, throwError } from 'rxjs'; |
| |
| export class ServiceBase { |
| url: string; |
| protected constructor(public httpClient: HttpClient) { |
| } |
| protected handleError(error: HttpErrorResponse) { |
| if (error.error instanceof ErrorEvent) { |
| // 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 observable with a user-facing error message |
| return throwError(error); |
| } |
| public getCount(filterInfo: string): Observable<number> { |
| const url = this.url + 'count'; |
| return this.httpClient.post<number>(url, {filter: filterInfo}); |
| } |
| } |