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 e25b2d5..5ec326f 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/SessionResource.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/SessionResource.java @@ -116,17 +116,23 @@ public class SessionResource { //Commented because not finished - /*@GetMapping("/activities/add") + @GetMapping("/{id_session}/activities/add/{id_act}") @PreAuthorize("hasRole('coach') or hasRole('admin')") - public ResponseEntity addActivity(@RequestBody ActiviteDTO dto) { - try { - Activite activite = maptoEntity(dto); - activiteDAO.save(activite); - return ResponseEntity.status(HttpStatus.CREATED).body(maptoDTO(activite)); - } catch (Exception ex) { - return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(ex.getMessage()); + public ResponseEntity addActivity(@PathVariable Integer id_sess, @PathVariable Integer id_act) { + Session s = sessionDAO.findById(id_sess).get(); + if(s.equals(null)){ + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Session not found"); } - }*/ + Activite a = activiteDAO.findById(id_act).get(); + if(a.equals(null)){ + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Activite not found"); + } + List l = s.getActivites(); + l.add(a); + s.setActivites(l); + sessionDAO.save(s); + return ResponseEntity.status(200).body(maptoDTO(s)); + } private SessionDTO maptoDTO(Session s) { SessionDTO dto = new SessionDTO(); diff --git a/front_end/src/api.ts b/front_end/src/api.ts index da90390..cf5a953 100644 --- a/front_end/src/api.ts +++ b/front_end/src/api.ts @@ -50,6 +50,7 @@ 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}`) }; export const activiteService = {