From 0ad4e95079c48ae8613a4e80b3a6f638cb529636 Mon Sep 17 00:00:00 2001 From: KKlochko Date: Tue, 28 Nov 2023 20:18:42 +0200 Subject: [PATCH] Update the indicator controller to have CRUD operations. --- .../controllers/IndicatorController.java | 69 +++++++++++++++---- 1 file changed, 57 insertions(+), 12 deletions(-) diff --git a/src/main/java/space/kklochko/spring_rest_example/controllers/IndicatorController.java b/src/main/java/space/kklochko/spring_rest_example/controllers/IndicatorController.java index c7c7ab6..e4c3f6c 100644 --- a/src/main/java/space/kklochko/spring_rest_example/controllers/IndicatorController.java +++ b/src/main/java/space/kklochko/spring_rest_example/controllers/IndicatorController.java @@ -1,7 +1,11 @@ package space.kklochko.spring_rest_example.controllers; +import jakarta.persistence.Entity; +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.IndicatorRepository; import space.kklochko.spring_rest_example.models.Indicator; import java.sql.Timestamp; @@ -13,22 +17,63 @@ import java.util.UUID; @RequestMapping("/api/v1/indicators") public class IndicatorController { @Autowired - Indicator indicator; - @GetMapping("/{indicatorId}") + EntityManager manager; + + @Autowired + IndicatorRepository indicatorRepository; + + @PostMapping @ResponseBody - public Indicator getIndicator(@PathVariable UUID indicatorId) { - return indicator; + public ResponseEntity create(@RequestBody Indicator indicator) { + Indicator isExist = indicatorRepository.read(indicator.getId()); + + if(isExist != null) + return ResponseEntity.status(500).body("Failed to create the indicator, because the id is already used!!!"); + + boolean successful = indicatorRepository.create(indicator); + + if(!successful) + return ResponseEntity.status(500).body("Failed to create the indicator"); + + return ResponseEntity.status(201).body("The indicator created successfully"); + } + + @GetMapping("/{id}") + @ResponseBody + public Indicator get(@PathVariable UUID id) { + return indicatorRepository.read(id); } @GetMapping @ResponseBody - public List getIndicators() { - UUID id = UUID.fromString("becbafac-702c-11ee-9113-c0e4349366ab"); - Timestamp timestamp = Timestamp.valueOf("2023-10-18 14:30:00"); - Indicator indicator = new Indicator(id, "Blood2", "Fine2", timestamp); - - List indicators = new ArrayList<>(); - indicators.add(indicator); - return indicators; + public List getAll() { + return indicatorRepository.readAll(); + } + + @PutMapping + @ResponseBody + public ResponseEntity update(@RequestBody Indicator indicator) { + Indicator isExist = indicatorRepository.read(indicator.getId()); + + if(isExist == null) + return ResponseEntity.status(500).body("Failed to update the indicator, because the indicator does not exist!!!"); + + boolean successful = indicatorRepository.update(indicator); + + if(!successful) + return ResponseEntity.status(500).body("Failed to update the indicator."); + + return ResponseEntity.status(200).body("The indicator updated successfully"); + } + + @DeleteMapping("/{id}") + @ResponseBody + public ResponseEntity delete(@PathVariable UUID id) { + boolean successful = indicatorRepository.delete(id); + + if(!successful) + return ResponseEntity.status(500).body("Failed to delete the indicator, because the indicator does not exist!!!"); + + return ResponseEntity.status(201).body("The indicator deleted successfully"); } }