v1
This commit is contained in:
88
src/app/services/aviso.service.ts
Normal file
88
src/app/services/aviso.service.ts
Normal file
@@ -0,0 +1,88 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { HttpClient, HttpParams, HttpErrorResponse } from '@angular/common/http';
|
||||
import { Observable, throwError } from 'rxjs';
|
||||
import { catchError, tap } from 'rxjs/operators';
|
||||
import { AvisoDto } from './aviso.dto'; // Importiere das Interface
|
||||
import { AvisoTvSettingsDto } from './aviso-tv-settings.dto'; // Importiere das neue Interface
|
||||
|
||||
// Definiere die Response Interfaces
|
||||
export interface AvisoArrivalsResponse {
|
||||
avisos: AvisoDto[];
|
||||
totalCount: number;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class AvisoService {
|
||||
|
||||
private baseUrl = 'https://localhost:7063/api/Aviso';
|
||||
|
||||
constructor(private http: HttpClient) { }
|
||||
|
||||
/**
|
||||
* Holt die Ankünfte (Arrivals) basierend auf den übergebenen Parametern.
|
||||
* @param standort Standort zur Filterung der Ankünfte.
|
||||
* @param seiten Gibt an, ob nur Seiten zurückgegeben werden sollen.
|
||||
* @param onlyOK Gibt an, ob nur gültige Ankünfte zurückgegeben werden sollen.
|
||||
* @returns Ein Observable von AvisoArrivalsResponse.
|
||||
*/
|
||||
getArrivals(standort: string, seiten: boolean = false, onlyOK: boolean = false): Observable<AvisoArrivalsResponse> {
|
||||
let params = new HttpParams()
|
||||
.set('standort', standort)
|
||||
.set('seiten', seiten.toString())
|
||||
.set('onlyOK', onlyOK.toString());
|
||||
|
||||
return this.http.get<AvisoArrivalsResponse>(`${this.baseUrl}/arrivals`, { params })
|
||||
.pipe(
|
||||
tap(data => console.log('AvisoService received arrivals data:', data)), // Logge die empfangenen Daten
|
||||
catchError(this.handleError)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt die Aviso TV Einstellungen basierend auf dem übergebenen Standort.
|
||||
* @param standort Standort zur Filterung der Einstellungen.
|
||||
* @returns Ein Observable von AvisoTvSettingsDto[].
|
||||
*/
|
||||
getAvisoTvSettings(standort: string): Observable<AvisoTvSettingsDto[]> {
|
||||
return this.http.get<AvisoTvSettingsDto[]>(`${this.baseUrl}/${standort}`)
|
||||
.pipe(
|
||||
tap(data => console.log('AvisoService received TV settings data:', data)), // Logge die empfangenen Daten
|
||||
catchError(this.handleError)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt die bereitstehenden Avisos basierend auf dem übergebenen Standort.
|
||||
* @param standort Standort zur Filterung der bereitstehenden Avisos.
|
||||
* @returns Ein Observable von AvisoDto[].
|
||||
*/
|
||||
getReadyAvisos(standort: string = ''): Observable<AvisoDto[]> {
|
||||
let params = new HttpParams().set('standort', standort);
|
||||
return this.http.get<AvisoDto[]>(`${this.baseUrl}/ready`, { params })
|
||||
.pipe(
|
||||
tap(data => console.log('AvisoService received ready avisos:', data)), // Logge die empfangenen Daten
|
||||
catchError(this.handleError)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Behandelt Fehler, die während HTTP-Anfragen auftreten.
|
||||
* @param error Das aufgetretene HttpErrorResponse-Objekt.
|
||||
* @returns Ein Observable, das einen Fehler auswirft.
|
||||
*/
|
||||
private handleError(error: HttpErrorResponse) {
|
||||
let errorMessage = 'Unbekannter Fehler!';
|
||||
if (error.error instanceof ErrorEvent) {
|
||||
// Client-seitiger Fehler
|
||||
errorMessage = `Fehler: ${error.error.message}`;
|
||||
} else {
|
||||
// Server-seitiger Fehler
|
||||
errorMessage = `Server returned code: ${error.status}, error message is: ${error.message}`;
|
||||
}
|
||||
return throwError(errorMessage);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user