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); }