diff --git a/employee.json b/employee.json deleted file mode 100644 index 142d1a2..0000000 --- a/employee.json +++ /dev/null @@ -1,2 +0,0 @@ -{"name":"John","lastname":"Doe","position":"Developer","department":"BSW"} - diff --git a/src/main/java/com/example/demo/Employee.java b/src/main/java/com/example/demo/Employee.java index 06f3d5e..edd8d8e 100644 --- a/src/main/java/com/example/demo/Employee.java +++ b/src/main/java/com/example/demo/Employee.java @@ -5,6 +5,7 @@ public class Employee { private String lastname; private String position; private String department; + private String passportNumber; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getLastname() { return lastname; } @@ -16,4 +17,7 @@ public void setPosition(String position) { this.position = public String getDepartment() { return department; } public void setDepartment(String department) { this.department = department; } + public String getPassportNumber() { return passportNumber; } + public void setPassportNumber(String passportNumber) { + this.passportNumber = passportNumber; } } diff --git a/src/main/java/com/example/demo/EmployeeController.java b/src/main/java/com/example/demo/EmployeeController.java index 96f0231..68139aa 100644 --- a/src/main/java/com/example/demo/EmployeeController.java +++ b/src/main/java/com/example/demo/EmployeeController.java @@ -1,20 +1,54 @@ package com.example.demo; - +import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.web.bind.annotation.*; import java.io.File; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; @RestController @RequestMapping("/employee") public class EmployeeController { + private final File employeeFile = new File("employee.json"); + private final ObjectMapper mapper = new ObjectMapper(); + @GetMapping("/list") + public List getAllEmployees() { + try { +// Read and return the list of employees + if (employeeFile.exists()) { + return mapper.readValue(employeeFile, new + TypeReference>() {}); + } else { + return new ArrayList<>(); // Return an empty list if no + + } + } catch (IOException e) { + e.printStackTrace(); + return new ArrayList<>(); // Return an empty list if there's + + } + } @PostMapping("/add") public String addEmployee(@RequestBody Employee employee) { try { - ObjectMapper mapper = new ObjectMapper(); - mapper.writeValue(new File("employee.json"), employee); - return "Employee data saved successfully!"; + List employees = new ArrayList<>(); + if (employeeFile.exists()) { + employees = mapper.readValue(employeeFile, new + TypeReference>() {}); + } + for (Employee existingEmployee : employees) { + if + (existingEmployee.getPassportNumber().equals(employee.getPassportNumber())) { + return "Error: Duplicate passport number!"; + } + } + employees.add(employee); + mapper.writeValue(employeeFile, employees); + return "Employee added successfully!"; } catch (IOException e) { return "Error saving employee data: " + e.getMessage(); } - } -} \ No newline at end of file + + }} + +