From 8c56880964c7d6e83415babfc8bc0d847558725d Mon Sep 17 00:00:00 2001 From: tuanvu Date: Mon, 12 Jan 2026 08:48:07 +0100 Subject: [PATCH] add getGroupe dans session et athlete --- .../hackathon/FrisbYEE/rest/AthleteResource.java | 14 ++++++++++++++ .../hackathon/FrisbYEE/rest/SessionResource.java | 11 +++++++++++ front_end/src/api.ts | 4 +++- 3 files changed, 28 insertions(+), 1 deletion(-) 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 52b2bda..4a8bc74 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java @@ -208,6 +208,20 @@ public class AthleteResource { return athleteSessions; } + @GetMapping("/{athleteId}/groupes") + public List getGroupesByAthlete(@PathVariable Integer athleteId) { + java.util.Optional athleteOptional = athleteDAO.findById(athleteId); + List groupes = new ArrayList<>(); + if (athleteOptional.isPresent()) { + Athlete athlete = athleteOptional.get(); + for (Session session : athlete.getSessions()) { + if (!groupes.contains(session.getGroupe())) { + groupes.add(session.getGroupe()); + } + } + } + return groupes; + } @Operation(summary = "Récupère toutes les sessions") @ApiResponses(value = { diff --git a/back_end/src/main/java/hackathon/FrisbYEE/rest/SessionResource.java b/back_end/src/main/java/hackathon/FrisbYEE/rest/SessionResource.java index 1568e8d..fdbf262 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/SessionResource.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/SessionResource.java @@ -124,6 +124,17 @@ public class SessionResource { } } + @GetMapping("{id}/groupe") + @PreAuthorize("hasRole('coach') or hasRole('athlete')") + public ResponseEntity getGroupeById(@PathVariable Integer id) { + try { + Session session = sessionDAO.findById(id).orElseThrow(); + return ResponseEntity.ok(session.getGroupe()); + } catch (Exception ex) { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage()); + } + } + @PutMapping("/update/{id}") @PreAuthorize("hasRole('coach')") public ResponseEntity updateSession(@PathVariable Integer id, @RequestBody SessionDTO dto) { diff --git a/front_end/src/api.ts b/front_end/src/api.ts index f87c7dd..c0d33b0 100644 --- a/front_end/src/api.ts +++ b/front_end/src/api.ts @@ -50,7 +50,8 @@ export const athleteService = { getActivitiesForSession: (sessionId: number | string) => api.get(`/athletes/session/${sessionId}/activities`), getSessionsAfterDate: (athleteId: number | string, date: string) => api.get(`/athletes/${athleteId}/session/after/${encodeURIComponent(date)}`), getSessionsBetweenDates: (athleteId: number | string, startDate: string, endDate: string) => api.get(`/athletes/${athleteId}/session/between/${encodeURIComponent(startDate)}/${encodeURIComponent(endDate)}`), - addActivity: (id_sess: number, id_act: number) => api.get(`/${id_sess}/activities/add/${id_act}`) + addActivity: (id_sess: number, id_act: number) => api.get(`/${id_sess}/activities/add/${id_act}`), + getGroupes: (athleteId: number | string) => api.get(`/athlete/${athleteId}/groupes`) }; export const activiteService = { @@ -78,6 +79,7 @@ export const sessionService = { getActivities: (sessionId: number | null) => api.get(`/session/${sessionId}/activities`), addActivity: (sessionId: number | null, activityId: number) => api.post(`/session/${sessionId}/activities/${activityId}`), + getGroupe: (sessionId: number | null) => api.get(`/session/${sessionId}/groupe`), getCoach: (sessionId: number | null) => api.get(`/session/${sessionId}/coach`), subscribe: (sessionId: number | null, userId: number) => api.put(`/session/${sessionId}/subscribe/${userId}`), unsubscribe: (sessionId: number | null, userId: number) => api.put(`/session/${sessionId}/unsubscribe/${userId}`),