This commit is contained in:
Peter Rossa
2023-05-10 12:23:25 +02:00
commit af29efa0f3
131 changed files with 16889 additions and 0 deletions

View 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);
}
}