Impersination backend

This commit is contained in:
Bastian Wagner
2026-02-20 13:17:58 +01:00
parent affea90e91
commit 62520466dc
11 changed files with 118 additions and 37 deletions

View File

@@ -5,6 +5,7 @@ import { IUser } from '../model/interface/user.interface';
import { IKey } from '../model/interface/key.interface';
import { ICylinder } from '../model/interface/cylinder.interface';
import { HotToastService } from '@ngxpert/hot-toast';
import { ICustomer } from '../model/interface/customer.interface';
@Injectable({
providedIn: 'root'
@@ -16,6 +17,7 @@ export class ApiService {
public keys: BehaviorSubject<IKey[]> = new BehaviorSubject<IKey[]>([]);
public cylinders: BehaviorSubject<ICylinder[]> = new BehaviorSubject<ICylinder[]>([]);
public systems: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);
public customers: BehaviorSubject<ICustomer[]> = new BehaviorSubject<ICustomer[]>([]);
public user: BehaviorSubject<IUser> = new BehaviorSubject<IUser>(null!);
@@ -55,6 +57,9 @@ export class ApiService {
return this.http.get<IKey[]>('api/key')
}
/**
* triggert das Laden der Schlüssel vom Server und speichert sie in keys
*/
refreshKeys(): void{
this.getKeys().subscribe({
next: keys => {
@@ -138,16 +143,25 @@ export class ApiService {
return this.http.post('api/customer', data);
}
getCustomers(): Promise<any[]> {
return new Promise(resolve => {
this.http.get<any[]>('api/customer').subscribe({
next: (customers) => resolve(customers),
error: (err) => {
this.toast.error('Fehler beim Laden der Mieter');
resolve([]);
}
private getCustomers(): Observable<ICustomer[]> {
return this.http.get<ICustomer[]>('api/customer')
}
})
/**
* triggert das Laden der Schlüssel vom Server und speichert sie in keys
*/
refreshCustomers(): Promise<ICustomer[]> {
return new Promise(resolve => {
this.getCustomers().subscribe({
next: customers => {
this.customers.next(customers);
resolve(customers)
},
error: () => {
this.toast.error('Fehler beim Laden der Schlüssel');
resolve([])
}
})
})
}
@@ -176,6 +190,12 @@ export class ApiService {
})
}
/**
* Löscht das System vom Server und zeigt Toast an.
* Aktualisiert die Systeme danach
* @param system zu löschen
* @returns true oder false
*/
deleteSystem(system: any): Promise<boolean> {
return new Promise<boolean>(resolve => {
this.http.delete(`api/system${system.id}`).pipe(
@@ -239,6 +259,11 @@ export class ApiService {
})
}
/**
* Aktualisiert die Schließanlagen im Behaviour Subject
* systems
* @returns Promise wenn geladen
*/
refreshSystems(): Promise<void> {
return new Promise(resolve => {
this.getSystems().subscribe({