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