From 3dc211d546e4da852095dfa7da46629882598be6 Mon Sep 17 00:00:00 2001
From: Paul Cancel <paul.cancel.etu@univ-lille.fr>
Date: Thu, 23 Jan 2025 11:55:29 +0100
Subject: [PATCH] RestController correctif

---
 .../controller/MeetingRestController.java      | 18 ++++++++++--------
 .../meetingplannr/security/Security.java       |  3 ++-
 2 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/src/main/java/fr/but/infoetu/meetingplannr/controller/MeetingRestController.java b/src/main/java/fr/but/infoetu/meetingplannr/controller/MeetingRestController.java
index aaa0289..ddc36fc 100644
--- a/src/main/java/fr/but/infoetu/meetingplannr/controller/MeetingRestController.java
+++ b/src/main/java/fr/but/infoetu/meetingplannr/controller/MeetingRestController.java
@@ -11,11 +11,13 @@ import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import fr.but.infoetu.meetingplannr.pojo.Meeting;
+import fr.but.infoetu.meetingplannr.pojo.User;
 import fr.but.infoetu.meetingplannr.repository.MeetingRepository;
 import fr.but.infoetu.meetingplannr.repository.UserRepository;
 
 import java.time.LocalDate;
 import java.util.List;
+import java.util.Optional;
 
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
@@ -37,20 +39,22 @@ public class MeetingRestController {
         try {
             List<Meeting> meetings = meetingRepository.findByRequestDate(date);
             return ResponseEntity.ok()
-                               .contentType(MediaType.APPLICATION_JSON)
-                               .body(meetings);
+                .contentType(MediaType.APPLICATION_JSON)
+                .body(meetings != null ? meetings : List.of());
         } catch (Exception e) {
             return ResponseEntity.badRequest().build();
         }
     }
 
     @GetMapping("/myappointments/{username}")
-    public ResponseEntity<?> getFutureMeetingsByName(@PathVariable String username) {
+    public ResponseEntity<List<Meeting>> getFutureMeetingsByName(@PathVariable String username) {
         try {
-            var user = userRepository.findByUsername(username);
+            Optional<User> user = userRepository.findByUsername(username);
             
             if (user.isEmpty()) {
-                return ResponseEntity.notFound().build();
+                return ResponseEntity.ok()
+                    .contentType(MediaType.APPLICATION_JSON)
+                    .body(List.of());
             }
 
             List<Meeting> meetings = meetingRepository
@@ -64,9 +68,7 @@ public class MeetingRestController {
                 .body(meetings);
                 
         } catch (Exception e) {
-            return ResponseEntity
-                .status(HttpStatus.INTERNAL_SERVER_ERROR)
-                .body("Error retrieving meetings: " + e.getMessage());
+            return ResponseEntity.badRequest().build();
         }
     }
 }
diff --git a/src/main/java/fr/but/infoetu/meetingplannr/security/Security.java b/src/main/java/fr/but/infoetu/meetingplannr/security/Security.java
index e593c5a..e97bc2b 100644
--- a/src/main/java/fr/but/infoetu/meetingplannr/security/Security.java
+++ b/src/main/java/fr/but/infoetu/meetingplannr/security/Security.java
@@ -72,7 +72,8 @@ public class Security {
                 .requestMatchers(mvc.pattern("/public/**"),
                                mvc.pattern("styles/**"), 
                                mvc.pattern("/common/**"),
-                               mvc.pattern("/uploads/**")).permitAll() 
+                               mvc.pattern("/uploads/**"),
+                               mvc.pattern("/api/**")).permitAll() 
                 .requestMatchers(mvc.pattern("/perform_login")).permitAll()
                 .requestMatchers(mvc.pattern("/user/**")).authenticated()
                 .requestMatchers(mvc.pattern("/admin/**")).hasRole("ADMIN")
-- 
GitLab