From 70d6f9b01bc3e3e20bfe6611716eed11f984b02f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ama=C3=ABl=20Kesteman?= Date: Sun, 11 Jan 2026 21:45:11 +0100 Subject: [PATCH] merge --- .../FrisbYEE/rest/AthleteResource.java | 40 ++++++++++--------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java b/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java index dd675b3..52b2bda 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java @@ -4,7 +4,6 @@ import java.time.LocalDate; import java.time.chrono.ChronoLocalDateTime; import java.util.ArrayList; import java.util.List; -import java.util.Optional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -53,7 +52,11 @@ public class AthleteResource { public ResponseEntity create(@RequestBody AthleteDTO dto) { Athlete athlete = mapToEntity(dto); if(athleteDAO.existsByKeycloakId(athlete.getKeycloakId())) { - return ResponseEntity.status(200).body(mapToDTO(athleteDAO.findByKeycloakId(athlete.getKeycloakId()).get())); + Athlete existing = athleteDAO.findByKeycloakId(athlete.getKeycloakId()).orElse(null); + if (existing != null) { + return ResponseEntity.status(200).body(mapToDTO(existing)); + } + return ResponseEntity.status(200).build(); } athleteDAO.save(athlete); return ResponseEntity.status(201).body(mapToDTO(athlete)); @@ -81,14 +84,16 @@ public class AthleteResource { @GetMapping("/{id}") @PreAuthorize("hasRole('admin') or hasRole('coach') or hasRole('athlete')") public ResponseEntity getById(@PathVariable String id) { - Athlete athlete = athleteDAO.findByKeycloakId(id).get(); + Athlete athlete = athleteDAO.findByKeycloakId(id).orElse(null); + if (athlete == null) return ResponseEntity.notFound().build(); return ResponseEntity.ok(mapToDTO(athlete)); } @GetMapping("/keycloak/{keycloak_id}") @PreAuthorize("hasRole('admin') or hasRole('coach') or hasRole('athlete')") public ResponseEntity getByKeycloakId(@PathVariable String keycloak_id) { - Athlete athlete = athleteDAO.findByKeycloakId(keycloak_id).get(); + Athlete athlete = athleteDAO.findByKeycloakId(keycloak_id).orElse(null); + if (athlete == null) return ResponseEntity.notFound().build(); return ResponseEntity.ok(mapToDTO(athlete)); } @@ -100,7 +105,8 @@ public class AthleteResource { @PreAuthorize("hasRole('admin') or #id == principal.id") public ResponseEntity update(@PathVariable Integer id, @RequestBody AthleteDTO dto) { try { - Athlete athlete = athleteDAO.findById(id).get(); + Athlete athlete = athleteDAO.findById(id).orElse(null); + if (athlete == null) return ResponseEntity.notFound().build(); athlete.setName(dto.getName()); athlete.setCategorie(dto.getCategorie()); athlete.setNiveau(dto.getNiveau()); @@ -165,16 +171,15 @@ public class AthleteResource { }) @GetMapping("/{athleteId}/session") public List getSessionsAthlete(@PathVariable Integer athleteId) { - Optional athleteOpt = athleteDAO.findById(athleteId); - if (athleteOpt.isEmpty()) { + Athlete athlete = athleteDAO.findById(athleteId).orElse(null); + if (athlete == null) { return new ArrayList<>(); } - List sessions = sessionDAO.findByAthletes_Id(athleteId); List athleteSessions = new ArrayList<>(); for (Session s : sessions) { - if (s.getAthletes().contains(athlete.get())) { + if (s.getAthletes().contains(athlete)) { SessionDTO dto = new SessionDTO(); dto.setId(s.getId()); @@ -185,7 +190,7 @@ public class AthleteResource { activiteIDs.add(activite.getId()); } dto.setActiviteIds(activiteIDs); - dto.setCoachId(s.getCoach().getId()); + dto.setCoachId(s.getCoach() != null ? s.getCoach().getId() : null); dto.setDuree(s.getDuree()); dto.setGroupe(s.getGroupe()); dto.setIsRecurrent(s.getIsRecurrent()); @@ -229,9 +234,8 @@ public class AthleteResource { @GetMapping("/athletes/session/{id}/activities") public List getActivitiesForSession(@PathVariable Integer id) { // Récupérer la session par ID - java.util.Optional sessionOpt = sessionDAO.findById(id); - if (sessionOpt.isPresent()) { - Session session = sessionOpt.get(); + Session session = sessionDAO.findById(id).orElse(null); + if (session != null) { // Retourner les activités de la session List activiteDTOs = new ArrayList<>(); for (Activite activite : session.getActivites()) { @@ -253,9 +257,8 @@ public class AthleteResource { @GetMapping("/athletes/{id}/session/after/{date}") public List getSessionsAfterDate(@PathVariable Integer id, @PathVariable String date) { // Récupérer l'athlète par ID - java.util.Optional athleteOpt = athleteDAO.findById(id); - if (athleteOpt.isPresent()) { - Athlete athlete = athleteOpt.get(); + Athlete athlete = athleteDAO.findById(id).orElse(null); + if (athlete != null) { // Récupérer les sessions de l'athlète après la date donnée List sessions = sessionDAO.findAll(); List filteredSessions = new ArrayList<>(); @@ -284,9 +287,8 @@ public class AthleteResource { public List getSessionsBetweenDates(@PathVariable Integer id, @PathVariable String startDate, @PathVariable String endDate) { // Récupérer l'athlète par ID - java.util.Optional athleteOpt = athleteDAO.findById(id); - if (athleteOpt.isPresent()) { - Athlete athlete = athleteOpt.get(); + Athlete athlete = athleteDAO.findById(id).orElse(null); + if (athlete != null) { // Récupérer les sessions de l'athlète entre les deux dates données List sessions = sessionDAO.findAll(); List filteredSessions = new ArrayList<>();