diff options
Diffstat (limited to 'gae/frontend/src/app/shared/servicebase.ts')
-rw-r--r-- | gae/frontend/src/app/shared/servicebase.ts | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/gae/frontend/src/app/shared/servicebase.ts b/gae/frontend/src/app/shared/servicebase.ts new file mode 100644 index 0000000..9eaecf8 --- /dev/null +++ b/gae/frontend/src/app/shared/servicebase.ts @@ -0,0 +1,41 @@ +/** + * 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}); + } +} |