From 22207235d97a91ee93da1e645a98fd4338ef1983 Mon Sep 17 00:00:00 2001 From: KKlochko Date: Wed, 29 Nov 2023 11:46:14 +0200 Subject: [PATCH] Add the REST API controllers for Department and Patient. --- .../controllers/DepartmentController.java | 76 +++++++++++++++++++ .../controllers/PatientController.java | 76 +++++++++++++++++++ .../db/repositories/DepartmentRepository.java | 2 + .../db/repositories/PatientRepository.java | 2 + 4 files changed, 156 insertions(+) create mode 100644 src/main/java/space/kklochko/spring_rest_example/controllers/DepartmentController.java create mode 100644 src/main/java/space/kklochko/spring_rest_example/controllers/PatientController.java diff --git a/src/main/java/space/kklochko/spring_rest_example/controllers/DepartmentController.java b/src/main/java/space/kklochko/spring_rest_example/controllers/DepartmentController.java new file mode 100644 index 0000000..8541b5b --- /dev/null +++ b/src/main/java/space/kklochko/spring_rest_example/controllers/DepartmentController.java @@ -0,0 +1,76 @@ +package space.kklochko.spring_rest_example.controllers; + +import jakarta.persistence.EntityManager; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import space.kklochko.spring_rest_example.db.repositories.DepartmentRepository; +import space.kklochko.spring_rest_example.models.Department; + +import java.util.List; +import java.util.UUID; + +@RestController +@RequestMapping("/api/v1/departments") +public class DepartmentController { + @Autowired + EntityManager manager; + + @Autowired + DepartmentRepository departmentRepository; + + @PostMapping + @ResponseBody + public ResponseEntity create(@RequestBody Department department) { + Department isExist = departmentRepository.read(department.getId()); + + if(isExist != null) + return ResponseEntity.status(500).body("Failed to create the department, because the id is already used!!!"); + + boolean successful = departmentRepository.create(department); + + if(!successful) + return ResponseEntity.status(500).body("Failed to create the department"); + + return ResponseEntity.status(201).body("The department created successfully"); + } + + @GetMapping("/{id}") + @ResponseBody + public Department get(@PathVariable UUID id) { + return departmentRepository.read(id); + } + + @GetMapping + @ResponseBody + public List getAll() { + return departmentRepository.readAll(); + } + + @PutMapping + @ResponseBody + public ResponseEntity update(@RequestBody Department department) { + Department isExist = departmentRepository.read(department.getId()); + + if(isExist == null) + return ResponseEntity.status(500).body("Failed to update the department, because the department does not exist!!!"); + + boolean successful = departmentRepository.update(department); + + if(!successful) + return ResponseEntity.status(500).body("Failed to update the department."); + + return ResponseEntity.status(200).body("The department updated successfully"); + } + + @DeleteMapping("/{id}") + @ResponseBody + public ResponseEntity delete(@PathVariable UUID id) { + boolean successful = departmentRepository.delete(id); + + if(!successful) + return ResponseEntity.status(500).body("Failed to delete the department, because the department does not exist!!!"); + + return ResponseEntity.status(201).body("The department deleted successfully"); + } +} diff --git a/src/main/java/space/kklochko/spring_rest_example/controllers/PatientController.java b/src/main/java/space/kklochko/spring_rest_example/controllers/PatientController.java new file mode 100644 index 0000000..c9ab1a4 --- /dev/null +++ b/src/main/java/space/kklochko/spring_rest_example/controllers/PatientController.java @@ -0,0 +1,76 @@ +package space.kklochko.spring_rest_example.controllers; + +import jakarta.persistence.EntityManager; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import space.kklochko.spring_rest_example.db.repositories.PatientRepository; +import space.kklochko.spring_rest_example.models.Patient; + +import java.util.List; +import java.util.UUID; + +@RestController +@RequestMapping("/api/v1/patients") +public class PatientController { + @Autowired + EntityManager manager; + + @Autowired + PatientRepository patientRepository; + + @PostMapping + @ResponseBody + public ResponseEntity create(@RequestBody Patient patient) { + Patient isExist = patientRepository.read(patient.getId()); + + if(isExist != null) + return ResponseEntity.status(500).body("Failed to create the patient, because the id is already used!!!"); + + boolean successful = patientRepository.create(patient); + + if(!successful) + return ResponseEntity.status(500).body("Failed to create the patient"); + + return ResponseEntity.status(201).body("The patient created successfully"); + } + + @GetMapping("/{id}") + @ResponseBody + public Patient get(@PathVariable UUID id) { + return patientRepository.read(id); + } + + @GetMapping + @ResponseBody + public List getAll() { + return patientRepository.readAll(); + } + + @PutMapping + @ResponseBody + public ResponseEntity update(@RequestBody Patient patient) { + Patient isExist = patientRepository.read(patient.getId()); + + if(isExist == null) + return ResponseEntity.status(500).body("Failed to update the patient, because the patient does not exist!!!"); + + boolean successful = patientRepository.update(patient); + + if(!successful) + return ResponseEntity.status(500).body("Failed to update the patient."); + + return ResponseEntity.status(200).body("The patient updated successfully"); + } + + @DeleteMapping("/{id}") + @ResponseBody + public ResponseEntity delete(@PathVariable UUID id) { + boolean successful = patientRepository.delete(id); + + if(!successful) + return ResponseEntity.status(500).body("Failed to delete the patient, because the patient does not exist!!!"); + + return ResponseEntity.status(201).body("The patient deleted successfully"); + } +} diff --git a/src/main/java/space/kklochko/spring_rest_example/db/repositories/DepartmentRepository.java b/src/main/java/space/kklochko/spring_rest_example/db/repositories/DepartmentRepository.java index ed9e305..4cce51f 100644 --- a/src/main/java/space/kklochko/spring_rest_example/db/repositories/DepartmentRepository.java +++ b/src/main/java/space/kklochko/spring_rest_example/db/repositories/DepartmentRepository.java @@ -3,6 +3,7 @@ package space.kklochko.spring_rest_example.db.repositories; import jakarta.persistence.EntityGraph; import jakarta.persistence.EntityManager; import jakarta.persistence.TypedQuery; +import org.springframework.stereotype.Component; import space.kklochko.spring_rest_example.db.repositories.blocks.TransactionalInsert; import space.kklochko.spring_rest_example.db.repositories.blocks.TransactionalRemove; import space.kklochko.spring_rest_example.db.repositories.blocks.TransactionalUpdate; @@ -12,6 +13,7 @@ import space.kklochko.spring_rest_example.models.Patient; import java.util.List; import java.util.UUID; +@Component public class DepartmentRepository extends AbstractRepository { public DepartmentRepository(EntityManager manager){ super(manager); diff --git a/src/main/java/space/kklochko/spring_rest_example/db/repositories/PatientRepository.java b/src/main/java/space/kklochko/spring_rest_example/db/repositories/PatientRepository.java index 973d630..92c5a6f 100644 --- a/src/main/java/space/kklochko/spring_rest_example/db/repositories/PatientRepository.java +++ b/src/main/java/space/kklochko/spring_rest_example/db/repositories/PatientRepository.java @@ -3,6 +3,7 @@ package space.kklochko.spring_rest_example.db.repositories; import jakarta.persistence.EntityGraph; import jakarta.persistence.EntityManager; import jakarta.persistence.TypedQuery; +import org.springframework.stereotype.Component; import space.kklochko.spring_rest_example.db.repositories.blocks.TransactionalInsert; import space.kklochko.spring_rest_example.db.repositories.blocks.TransactionalRemove; import space.kklochko.spring_rest_example.db.repositories.blocks.TransactionalUpdate; @@ -11,6 +12,7 @@ import space.kklochko.spring_rest_example.models.Patient; import java.util.List; import java.util.UUID; +@Component public class PatientRepository extends AbstractRepository { public PatientRepository(EntityManager manager) { super(manager);