From 9fbb9d85f2535abe597b6743ee647a621639bc42 Mon Sep 17 00:00:00 2001 From: fatima ezzahra majidi <fatima-ezzahra.majidi.etu@univ-lille.fr> Date: Sun, 2 Mar 2025 16:59:43 +0000 Subject: [PATCH] Modif + Delete candidature --- .../controllers/CandidacyController.java | 33 +++++++++++++++++++ .../services/CandidacyService.java | 4 +++ 2 files changed, 37 insertions(+) diff --git a/src/main/java/com/example/gestionstagesbackend/controllers/CandidacyController.java b/src/main/java/com/example/gestionstagesbackend/controllers/CandidacyController.java index 2ae6084..9b9678e 100644 --- a/src/main/java/com/example/gestionstagesbackend/controllers/CandidacyController.java +++ b/src/main/java/com/example/gestionstagesbackend/controllers/CandidacyController.java @@ -80,4 +80,37 @@ public class CandidacyController { .map(ResponseEntity::ok) .orElse(ResponseEntity.notFound().build()); } + @DeleteMapping("/{id}") + public ResponseEntity<Void> deleteCandidacy(@PathVariable Long id) { + if (!candidacyService.existsById(id)) { + return ResponseEntity.notFound().build(); + } + candidacyService.deleteCandidacy(id); + return ResponseEntity.noContent().build(); + } + + @PutMapping("/{id}") + public ResponseEntity<?> updateCandidacy(@PathVariable Long id, @RequestBody Candidacy updatedCandidacy) { + Optional<Candidacy> existingCandidacy = candidacyService.getCandidacyById(id); + + if (existingCandidacy.isEmpty()) { + return ResponseEntity.notFound().build(); + } + + Candidacy candidacy = existingCandidacy.get(); + if (updatedCandidacy.getStudent() != null && updatedCandidacy.getStudent().getId() != null) { + candidacy.setStudent(updatedCandidacy.getStudent()); + } + if (updatedCandidacy.getStage() != null && updatedCandidacy.getStage().getId() != null) { + candidacy.setStage(updatedCandidacy.getStage()); + } + if (updatedCandidacy.getUnivSupervisor() != null) { + candidacy.setUnivSupervisor(updatedCandidacy.getUnivSupervisor()); + } + + Candidacy savedCandidacy = candidacyService.saveCandidacy(candidacy); + return ResponseEntity.ok(savedCandidacy); + } + + } diff --git a/src/main/java/com/example/gestionstagesbackend/services/CandidacyService.java b/src/main/java/com/example/gestionstagesbackend/services/CandidacyService.java index 174fd3e..c0138da 100644 --- a/src/main/java/com/example/gestionstagesbackend/services/CandidacyService.java +++ b/src/main/java/com/example/gestionstagesbackend/services/CandidacyService.java @@ -35,4 +35,8 @@ public class CandidacyService { public List<Candidacy> getCandidaciesByStudentId(Long studentId) { return candidacyRepository.findByStudentId(studentId); } + public boolean existsById(Long id) { + return candidacyRepository.existsById(id); + } + } -- GitLab