Init app
This commit is contained in:
55
rossa-tech-cli/src/app/services/database.service.ts
Normal file
55
rossa-tech-cli/src/app/services/database.service.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
import { MeterData } from './../models/Meterdata';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
|
||||
import { Observable, throwError } from 'rxjs';
|
||||
import { catchError } from 'rxjs/operators';
|
||||
import { Meter } from 'src/app/models/Meter';
|
||||
import { environment } from 'src/environments/environment';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class DatabaseService {
|
||||
private baseUrl = environment.hostUrl + '/v1';
|
||||
|
||||
constructor(private http: HttpClient) {}
|
||||
|
||||
getMeterData(): Observable<MeterData[]> {
|
||||
const url = `${this.baseUrl}/meter-data`;
|
||||
return this.http.get<MeterData[]>(url).pipe(catchError(this.handleError));
|
||||
}
|
||||
|
||||
getMeterDataByType(usageType: string): Observable<MeterData[]> {
|
||||
const url = `${this.baseUrl}/meter-data?usageType=${usageType}`;
|
||||
return this.http.get<MeterData[]>(url).pipe(catchError(this.handleError));
|
||||
}
|
||||
|
||||
addMeterData(meterData: MeterData): Observable<MeterData> {
|
||||
const url = `${this.baseUrl}/meter-data`;
|
||||
return this.http
|
||||
.post<MeterData>(url, meterData)
|
||||
.pipe(catchError(this.handleError));
|
||||
}
|
||||
|
||||
getMeters(): Observable<Meter[]> {
|
||||
const url = `${this.baseUrl}/meters`;
|
||||
return this.http.get<Meter[]>(url).pipe(catchError(this.handleError));
|
||||
}
|
||||
|
||||
private handleError(error: HttpErrorResponse): Observable<never> {
|
||||
// https://stackoverflow.com/questions/68655492/throwerrorerror-is-now-deprecated-but-there-is-no-new-errorhttperrorresponse
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user