From 42a6c573694aee724b6d262c148882158626a76d Mon Sep 17 00:00:00 2001 From: Alexis Leboeuf Date: Thu, 8 Jan 2026 13:39:54 +0100 Subject: [PATCH] Coaches and Athletes by keycloak id --- .../main/java/hackathon/FrisbYEE/jpa/service/CoachDAO.java | 6 +++++- .../main/java/hackathon/FrisbYEE/rest/AthleteResource.java | 7 +++---- .../main/java/hackathon/FrisbYEE/rest/CoachResource.java | 6 +++--- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/CoachDAO.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/CoachDAO.java index 8c4266b..8dadd94 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/CoachDAO.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/CoachDAO.java @@ -1,10 +1,14 @@ package hackathon.FrisbYEE.jpa.service; import hackathon.FrisbYEE.jpa.metier.Coach; + +import java.util.Optional; + import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface CoachDAO extends JpaRepository { - + boolean existsByKeycloakId(String keycloakId); + Optional findByKeycloakId(String keycloakId); } \ No newline at end of file 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 cc9112e..5d18586 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java @@ -76,10 +76,9 @@ public class AthleteResource { }) @GetMapping("/{id}") @PreAuthorize("hasRole('admin') or hasRole('coach') or hasRole('athlete')") - public ResponseEntity getById(@PathVariable Integer id) { - return athleteDAO.findById(id) - .map(athlete -> ResponseEntity.ok(mapToDTO(athlete))) - .orElse(ResponseEntity.notFound().build()); + public ResponseEntity getById(@PathVariable String id) { + Athlete athlete = athleteDAO.findByKeycloakId(id).get(); + return ResponseEntity.ok(mapToDTO(athlete)); } @Operation(summary = "Met à jour l'athlète ayant l'identifiant correspondant") diff --git a/back_end/src/main/java/hackathon/FrisbYEE/rest/CoachResource.java b/back_end/src/main/java/hackathon/FrisbYEE/rest/CoachResource.java index acd34f1..1b054eb 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/CoachResource.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/CoachResource.java @@ -39,10 +39,10 @@ public class CoachResource { return dtos; } - @GetMapping("/{id}") + @GetMapping("/{keycloak_id}") @PreAuthorize("hasRole('Admin') or hasRole('Coach')") - public CoachDTO getById(@PathVariable Integer id) { - Coach coach = coachDAO.findById(id) + public CoachDTO getById(@PathVariable String keycloak_id) { + Coach coach = coachDAO.findByKeycloakId(keycloak_id) .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, "Coach not found")); return mapToDTO(coach); }