import { HttpClient } from '@angular/common/http'; import { inject, Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { IUser } from '../model/interface/user.interface'; import { IKey } from '../model/interface/key.interface'; import { ICylinder } from '../model/interface/cylinder.interface'; @Injectable({ providedIn: 'root' }) export class ApiService { private http: HttpClient = inject(HttpClient); constructor() { } getAllUsers(): Observable { return this.http.get('/api/user'); } saveUser(user: IUser) { return this.http.post('/api/user', user); } getRoles(): Observable<{id: string, name: string}[]> { return this.http.get<{id: string, name: string}[]>('/api/role'); } getKeys(): Observable { return this.http.get('api/key') } updateKey(key: IKey): Observable { return this.http.put('api/key', key); } createKey(key: any) { return this.http.post('api/key', key); } createSystem(keySystem: any) { return this.http.post('api/system', keySystem); } getSystems(): Observable { return this.http.get('api/system'); } handoverKey(data: any) { return this.http.post(`api/key/${data.key.id}/handover`, data); } getHandovers(keyID: string): Observable { return this.http.get(`api/key/${keyID}/handover`); } createCustomer(data: { name: string, system: any}) { return this.http.post('api/customer', data); } getCustomers(): Observable { return this.http.get('api/customer') } deleteKey(id: string) { return this.http.delete(`api/key/${id}`); } getKeyArchive(): Observable { return this.http.get('api/key/archive'); } restoreKey(id: string) { return this.http.put(`api/key/${id}/restore`, null); } getCylinders(): Observable { return this.http.get('api/cylinder'); } deleteCylinder(cylinder: ICylinder): Observable { return this.http.delete(`api/cylinder/${cylinder.id}`) } }