
Co-authored-by: Phan Huy Tran <p.tran@neusta.de> Reviewed-on: #26 Reviewed-by: Constantin Simonis <constantin@simonis.lol>
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import {inject, Injectable} from "@angular/core";
|
|
import {HttpClient} from "@angular/common/http";
|
|
import {map, Observable} from "rxjs";
|
|
import {Qualification} from "../qualification/Qualification";
|
|
import {Employee} from "../employee/Employee";
|
|
|
|
|
|
@Injectable({
|
|
providedIn: 'root'
|
|
})
|
|
export default class QualificationService {
|
|
private http: HttpClient = inject(HttpClient);
|
|
|
|
private static readonly BASE_URL = 'http://localhost:8089';
|
|
|
|
public getAll(): Observable<Qualification[]> {
|
|
return this.http.get<Qualification[]>(`${QualificationService.BASE_URL}/qualifications`).pipe(
|
|
map(qualifications => qualifications.sort((a, b) => a.id - b.id))
|
|
)
|
|
}
|
|
|
|
public create(data: any) {
|
|
return this.http.post(`${QualificationService.BASE_URL}/qualifications`, data)
|
|
}
|
|
|
|
public edit(id: number, data: any) {
|
|
return this.http.put(`${QualificationService.BASE_URL}/qualifications/${id}`, data)
|
|
}
|
|
|
|
public delete(id: number) {
|
|
return this.http.delete(`${QualificationService.BASE_URL}/qualifications/${id}`)
|
|
}
|
|
|
|
public findEmployees(id: number): Observable<Employee[]> {
|
|
return this.http.get<any>(`${QualificationService.BASE_URL}/qualifications/${id}/employees`)
|
|
.pipe(
|
|
map(response => response.employees)
|
|
);
|
|
}
|
|
}
|