diff --git a/src/main/java/com/example/gestionstagesbackend/controllers/CandidacyController.java b/src/main/java/com/example/gestionstagesbackend/controllers/CandidacyController.java index 2ae6084ab0bd0dba6cff3f7c728dea64c9437f0c..9b9678eb3a74dc4fcc5187caa6945e20b8369fdb 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 174fd3eab4d0f0fdfa7a3ce947897a1338bda1a0..c0138daabed21906a9c152635ef67dc5a985442e 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); + } + }