employeeService/src/app/service/employee.service.ts

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();
}
}