From 582e1152858505175670129e5d0deef393d6b1d7 Mon Sep 17 00:00:00 2001 From: Jan Klattenhoff Date: Wed, 15 Jan 2025 14:01:27 +0100 Subject: [PATCH] feat: add employee creation component and route --- src/app/app.routes.ts | 6 ++++++ .../mitarbeiter-erstellen.component.css | 0 .../mitarbeiter-erstellen.component.html | 0 .../mitarbeiter-erstellen.component.spec.ts | 0 .../mitarbeiter-erstellen.component.ts | 9 +++++---- src/app/service/employee.service.ts | 15 +++++++++++++-- 6 files changed, 24 insertions(+), 6 deletions(-) rename src/app/{ => components}/mitarbeiter-erstellen/mitarbeiter-erstellen.component.css (100%) rename src/app/{ => components}/mitarbeiter-erstellen/mitarbeiter-erstellen.component.html (100%) rename src/app/{ => components}/mitarbeiter-erstellen/mitarbeiter-erstellen.component.spec.ts (100%) rename src/app/{ => components}/mitarbeiter-erstellen/mitarbeiter-erstellen.component.ts (76%) diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index fff369b..5fcbcba 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -5,6 +5,7 @@ import { EmployeeDetailComponent } from "./components/employee-detail/employee-d import { QualifikatonBearbeitenViewComponent } from "./components/qualifikaton-bearbeiten-view/qualifikaton-bearbeiten-view.component"; import { MitarbeiterBearbeitenViewComponent } from "./components/mitarbeiter-bearbeiten-view/mitarbeiter-bearbeiten-view.component"; import { AuthGuard } from "./service/auth.service"; +import { MitarbeiterErstellenComponent } from "./components/mitarbeiter-erstellen/mitarbeiter-erstellen.component"; export const routes: Routes = [ { @@ -16,6 +17,11 @@ export const routes: Routes = [ component: MitarbeiterverwaltungViewComponent, canActivate: [AuthGuard], }, + { + path: "mitarbeitererstellen", + component: MitarbeiterErstellenComponent, + canActivate: [AuthGuard], + }, { path: "mitarbeiterbearbeiten/:id", component: MitarbeiterBearbeitenViewComponent, diff --git a/src/app/mitarbeiter-erstellen/mitarbeiter-erstellen.component.css b/src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.css similarity index 100% rename from src/app/mitarbeiter-erstellen/mitarbeiter-erstellen.component.css rename to src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.css diff --git a/src/app/mitarbeiter-erstellen/mitarbeiter-erstellen.component.html b/src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.html similarity index 100% rename from src/app/mitarbeiter-erstellen/mitarbeiter-erstellen.component.html rename to src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.html diff --git a/src/app/mitarbeiter-erstellen/mitarbeiter-erstellen.component.spec.ts b/src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.spec.ts similarity index 100% rename from src/app/mitarbeiter-erstellen/mitarbeiter-erstellen.component.spec.ts rename to src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.spec.ts diff --git a/src/app/mitarbeiter-erstellen/mitarbeiter-erstellen.component.ts b/src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.ts similarity index 76% rename from src/app/mitarbeiter-erstellen/mitarbeiter-erstellen.component.ts rename to src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.ts index 7391188..c21bc4e 100644 --- a/src/app/mitarbeiter-erstellen/mitarbeiter-erstellen.component.ts +++ b/src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.ts @@ -1,12 +1,13 @@ import { Component } from '@angular/core'; -import { EmployeeResponseDTO } from '../models/mitarbeiter'; -import { EmployeeService } from '../service/employee.service'; import { ActivatedRoute, Router } from '@angular/router'; +import { EmployeeResponseDTO } from '../../models/mitarbeiter'; +import { EmployeeService } from '../../service/employee.service'; +import { MitarbeiterFormComponent } from '../mitarbeiter-form/mitarbeiter-form.component'; @Component({ selector: 'app-mitarbeiter-erstellen', standalone: true, - imports: [], + imports: [MitarbeiterFormComponent], templateUrl: './mitarbeiter-erstellen.component.html', styleUrl: './mitarbeiter-erstellen.component.css' }) @@ -16,7 +17,7 @@ export class MitarbeiterErstellenComponent { constructor(private employeeService: EmployeeService, private route: ActivatedRoute, private router: Router) { } submitted(mitarbeiter: EmployeeResponseDTO) { - this.employeeService.updateEmployee(mitarbeiter); + this.employeeService.createEmployee(mitarbeiter); this.returnToEmployeeOverview(); } diff --git a/src/app/service/employee.service.ts b/src/app/service/employee.service.ts index 1db2e61..17062f7 100644 --- a/src/app/service/employee.service.ts +++ b/src/app/service/employee.service.ts @@ -1,5 +1,5 @@ import { Injectable } from "@angular/core"; -import { EmployeeRequestPutDTO, EmployeeResponseDTO } from "../models/mitarbeiter"; +import { EmployeeRequestDTO, EmployeeRequestPutDTO, EmployeeResponseDTO } from "../models/mitarbeiter"; import { HttpClient } from "@angular/common/http"; import { Observable } from "rxjs"; import { SkillService } from "./skill.service"; @@ -10,6 +10,17 @@ import { SkillService } from "./skill.service"; export class EmployeeService { constructor(private http: HttpClient) { } + responseToRequestDto(employee: EmployeeResponseDTO): EmployeeRequestDTO { + 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) || [], + } + } responseDtoToPutDto(employee: EmployeeResponseDTO): EmployeeRequestPutDTO { return { @@ -24,7 +35,7 @@ export class EmployeeService { } createEmployee(employee: EmployeeResponseDTO) { - + this.http.post(`${SkillService.BASE_URL}/employees`, this.responseToRequestDto(employee)).subscribe(); } updateEmployee(employee: EmployeeResponseDTO) {