49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
import { Injectable } from "@angular/core";
|
|
import { EmployeeRequestPutDTO, EmployeeResponseDTO } from "../models/mitarbeiter";
|
|
import { HttpClient } from "@angular/common/http";
|
|
import { Observable } from "rxjs";
|
|
import { SkillService } from "./skill.service";
|
|
|
|
@Injectable({
|
|
providedIn: 'root'
|
|
})
|
|
export class EmployeeService {
|
|
constructor(private http: HttpClient) { }
|
|
|
|
|
|
responseDtoToPutDto(employee: EmployeeResponseDTO): EmployeeRequestPutDTO {
|
|
return {
|
|
firstName: employee.firstName,
|
|
lastName: employee.lastName,
|
|
street: employee.street,
|
|
postcode: employee.postcode,
|
|
city: employee.city,
|
|
phone: employee.phone,
|
|
skillSet: employee.skillSet?.map(skill => skill.id) || [],
|
|
}
|
|
}
|
|
|
|
updateEmployee(employee: EmployeeResponseDTO) {
|
|
this.http.put(`${SkillService.BASE_URL}/employees/${employee.id}`, this.responseDtoToPutDto(employee)).subscribe();
|
|
}
|
|
|
|
getAllEmployees(): Observable<Array<EmployeeResponseDTO>> {
|
|
return this.http.get<Array<EmployeeResponseDTO>>(`${SkillService.BASE_URL}/employees`);
|
|
}
|
|
|
|
deleteEmployee(id: number) {
|
|
this.http.delete(`${SkillService.BASE_URL}/employees/${id}`).subscribe();
|
|
}
|
|
|
|
getEmployeeById(id: number): Observable<EmployeeResponseDTO> {
|
|
return this.http.get<EmployeeResponseDTO>(`${SkillService.BASE_URL}/employees/${id}`);
|
|
}
|
|
|
|
|
|
addSkillToEmployee(skillId: number, employee: EmployeeResponseDTO) {
|
|
let employeePut = this.responseDtoToPutDto(employee);
|
|
employeePut.skillSet.push(skillId);
|
|
|
|
this.http.put(`${SkillService.BASE_URL}/employees/${employee.id}`, employeePut).subscribe();
|
|
}
|
|
}
|