From 3eadabfa4c91b92cdc3449fc737f4d676685f82a Mon Sep 17 00:00:00 2001 From: Alexis Leboeuf Date: Fri, 9 Jan 2026 08:40:40 +0100 Subject: [PATCH 1/3] Modified HTTP status on create when user already exists Changed from 409 CONFLICT to 302 FOUND --- .../main/java/hackathon/FrisbYEE/rest/AthleteResource.java | 6 ++++-- .../main/java/hackathon/FrisbYEE/rest/CoachResource.java | 2 +- 2 files changed, 5 insertions(+), 3 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 2ea0c44..8fe9fa5 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java @@ -9,7 +9,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -52,7 +51,7 @@ public class AthleteResource { public ResponseEntity create(@RequestBody AthleteDTO dto) { Athlete athlete = mapToEntity(dto); if(athleteDAO.existsByKeycloakId(athlete.getKeycloakId())) { - return ResponseEntity.status(HttpStatus.CONFLICT).body(mapToDTO(athleteDAO.findByKeycloakId(athlete.getKeycloakId()).get())); + return ResponseEntity.status(HttpStatus.FOUND).body(mapToDTO(athleteDAO.findByKeycloakId(athlete.getKeycloakId()).get())); } athleteDAO.save(athlete); return ResponseEntity.status(HttpStatus.CREATED).body(mapToDTO(athlete)); @@ -164,6 +163,7 @@ public class AthleteResource { @ApiResponse(responseCode = "200", description = "Récupération effectuée", content = @Content(mediaType = "application/json", schema = @Schema(implementation = SessionDTO.class))) }) @GetMapping("/athlete/{id}/session") + @PreAuthorize("hasRole('admin') or #id == principal.id") public List getSessionsAthlete(@PathVariable Integer athleteId) { // return pet System.out.println("ID A CHERCHER" + athleteId); @@ -282,4 +282,6 @@ public class AthleteResource { } return new ArrayList<>(); } + + } 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 4805146..bf41524 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/CoachResource.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/CoachResource.java @@ -25,7 +25,7 @@ public class CoachResource { public ResponseEntity create(@RequestBody CoachDTO dto) { Coach coach = mapToEntity(dto); if(coachDAO.existsByKeycloakId(coach.getKeycloakId())) { - return ResponseEntity.status(HttpStatus.CONFLICT).body(mapToDTO(coachDAO.findByKeycloakId(coach.getKeycloakId()).get())); + return ResponseEntity.status(HttpStatus.FOUND).body(mapToDTO(coachDAO.findByKeycloakId(coach.getKeycloakId()).get())); } coachDAO.save(coach); return ResponseEntity.status(HttpStatus.CREATED).body(mapToDTO(coach)); From 3d00b0ad2dd2dc5447a6ec4c46974715fe804cc4 Mon Sep 17 00:00:00 2001 From: Alexis Leboeuf Date: Fri, 9 Jan 2026 10:31:14 +0100 Subject: [PATCH 2/3] Changed HTTP codes on Coach and Athlete creation --- .../main/java/hackathon/FrisbYEE/rest/AthleteResource.java | 5 ++--- .../src/main/java/hackathon/FrisbYEE/rest/CoachResource.java | 4 ++-- 2 files changed, 4 insertions(+), 5 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 8fe9fa5..60c75c5 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java @@ -51,10 +51,10 @@ public class AthleteResource { public ResponseEntity create(@RequestBody AthleteDTO dto) { Athlete athlete = mapToEntity(dto); if(athleteDAO.existsByKeycloakId(athlete.getKeycloakId())) { - return ResponseEntity.status(HttpStatus.FOUND).body(mapToDTO(athleteDAO.findByKeycloakId(athlete.getKeycloakId()).get())); + return ResponseEntity.status(201).body(mapToDTO(athleteDAO.findByKeycloakId(athlete.getKeycloakId()).get())); } athleteDAO.save(athlete); - return ResponseEntity.status(HttpStatus.CREATED).body(mapToDTO(athlete)); + return ResponseEntity.status(200).body(mapToDTO(athlete)); } @Operation(summary = "Récupère tous les athlètes") @@ -163,7 +163,6 @@ public class AthleteResource { @ApiResponse(responseCode = "200", description = "Récupération effectuée", content = @Content(mediaType = "application/json", schema = @Schema(implementation = SessionDTO.class))) }) @GetMapping("/athlete/{id}/session") - @PreAuthorize("hasRole('admin') or #id == principal.id") public List getSessionsAthlete(@PathVariable Integer athleteId) { // return pet System.out.println("ID A CHERCHER" + athleteId); 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 bf41524..4c32614 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/CoachResource.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/CoachResource.java @@ -25,10 +25,10 @@ public class CoachResource { public ResponseEntity create(@RequestBody CoachDTO dto) { Coach coach = mapToEntity(dto); if(coachDAO.existsByKeycloakId(coach.getKeycloakId())) { - return ResponseEntity.status(HttpStatus.FOUND).body(mapToDTO(coachDAO.findByKeycloakId(coach.getKeycloakId()).get())); + return ResponseEntity.status(201).body(mapToDTO(coachDAO.findByKeycloakId(coach.getKeycloakId()).get())); } coachDAO.save(coach); - return ResponseEntity.status(HttpStatus.CREATED).body(mapToDTO(coach)); + return ResponseEntity.status(200).body(mapToDTO(coach)); } @GetMapping("/all") From 34f37b99ccf53b39725aa83c06ea588d69cefa63 Mon Sep 17 00:00:00 2001 From: Alexis Leboeuf Date: Fri, 9 Jan 2026 10:36:10 +0100 Subject: [PATCH 3/3] Inverted creation HTTP status because I am stupid --- .../main/java/hackathon/FrisbYEE/rest/AthleteResource.java | 4 ++-- .../src/main/java/hackathon/FrisbYEE/rest/CoachResource.java | 4 ++-- 2 files changed, 4 insertions(+), 4 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 60c75c5..0e4b0b8 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java @@ -51,10 +51,10 @@ public class AthleteResource { public ResponseEntity create(@RequestBody AthleteDTO dto) { Athlete athlete = mapToEntity(dto); if(athleteDAO.existsByKeycloakId(athlete.getKeycloakId())) { - return ResponseEntity.status(201).body(mapToDTO(athleteDAO.findByKeycloakId(athlete.getKeycloakId()).get())); + return ResponseEntity.status(200).body(mapToDTO(athleteDAO.findByKeycloakId(athlete.getKeycloakId()).get())); } athleteDAO.save(athlete); - return ResponseEntity.status(200).body(mapToDTO(athlete)); + return ResponseEntity.status(201).body(mapToDTO(athlete)); } @Operation(summary = "Récupère tous les athlètes") 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 4c32614..7cf3d88 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/CoachResource.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/CoachResource.java @@ -25,10 +25,10 @@ public class CoachResource { public ResponseEntity create(@RequestBody CoachDTO dto) { Coach coach = mapToEntity(dto); if(coachDAO.existsByKeycloakId(coach.getKeycloakId())) { - return ResponseEntity.status(201).body(mapToDTO(coachDAO.findByKeycloakId(coach.getKeycloakId()).get())); + return ResponseEntity.status(200).body(mapToDTO(coachDAO.findByKeycloakId(coach.getKeycloakId()).get())); } coachDAO.save(coach); - return ResponseEntity.status(200).body(mapToDTO(coach)); + return ResponseEntity.status(201).body(mapToDTO(coach)); } @GetMapping("/all")