;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ imports: [MitarbeiterErstellenComponent]
+ })
+ .compileComponents();
+
+ fixture = TestBed.createComponent(MitarbeiterErstellenComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.ts b/src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.ts
new file mode 100644
index 0000000..c21bc4e
--- /dev/null
+++ b/src/app/components/mitarbeiter-erstellen/mitarbeiter-erstellen.component.ts
@@ -0,0 +1,43 @@
+import { Component } from '@angular/core';
+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: [MitarbeiterFormComponent],
+ templateUrl: './mitarbeiter-erstellen.component.html',
+ styleUrl: './mitarbeiter-erstellen.component.css'
+})
+export class MitarbeiterErstellenComponent {
+ public mitarbeiter!: EmployeeResponseDTO;
+
+ constructor(private employeeService: EmployeeService, private route: ActivatedRoute, private router: Router) { }
+
+ submitted(mitarbeiter: EmployeeResponseDTO) {
+ this.employeeService.createEmployee(mitarbeiter);
+ this.returnToEmployeeOverview();
+ }
+
+ returnToEmployeeOverview() {
+ this.router.navigate(["mitarbeiter"]);
+ }
+
+ ngOnInit(): void {
+ this.mitarbeiter = {
+ id: 0,
+ firstName: '',
+ lastName: '',
+ street: '',
+ phone: '',
+ skillSet: [],
+ postcode: '',
+ city: '',
+ }
+ this.employeeService.getEmployeeById(this.route.snapshot.params['id']).subscribe(employee => {
+ this.mitarbeiter = employee;
+ });
+ }
+}
diff --git a/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.html b/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.html
index 7823733..467faee 100644
--- a/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.html
+++ b/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.html
@@ -20,7 +20,7 @@
Search for a propertiy of an Employee. eg. First Name
-
+
diff --git a/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.ts b/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.ts
index afcdff1..8415072 100644
--- a/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.ts
+++ b/src/app/components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component.ts
@@ -46,6 +46,10 @@ export class MitarbeiterverwaltungViewComponent implements OnInit {
this.router.navigate([`/mitarbeiterbearbeiten/${id}`]);
}
+ createEmployee() {
+ this.router.navigate(['/mitarbeitererstellen']);
+ }
+
deleteEmployee(id: number) {
this.employeeService.deleteEmployee(id);
this.employees = this.employees.filter(employee => employee.id != id);
diff --git a/src/app/service/employee.service.ts b/src/app/service/employee.service.ts
index e87bcf5..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 {
@@ -23,6 +34,10 @@ export class EmployeeService {
}
}
+ createEmployee(employee: EmployeeResponseDTO) {
+ this.http.post(`${SkillService.BASE_URL}/employees`, this.responseToRequestDto(employee)).subscribe();
+ }
+
updateEmployee(employee: EmployeeResponseDTO) {
this.http.put(`${SkillService.BASE_URL}/employees/${employee.id}`, this.responseDtoToPutDto(employee)).subscribe();
}