diff --git a/back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResource.java b/back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResource.java index aefeed5..73a7930 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResource.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResource.java @@ -5,6 +5,12 @@ import hackathon.FrisbYEE.jpa.metier.Activite; import hackathon.FrisbYEE.jpa.metier.Session; import hackathon.FrisbYEE.jpa.service.ActiviteDAO; import hackathon.FrisbYEE.jpa.service.SessionDAO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -30,6 +36,12 @@ public class ActiviteResource { * */ + @Operation(summary = "Créer une activité") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Création effectuée", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = ActiviteDTO.class))) + }) @PostMapping("/create") @ResponseBody @PreAuthorize("hasRole('Coach')") @@ -46,6 +58,12 @@ public class ActiviteResource { return ResponseEntity.status(HttpStatus.CREATED).body("Activity created"); } + @Operation(summary = "Supprime l'activité ayant l'identifiant correspondant") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Suppression effectuée", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = ActiviteDTO.class))) + }) @DeleteMapping("/delete/{id}") @ResponseBody @PreAuthorize("hasRole('Coach')") @@ -60,6 +78,12 @@ public class ActiviteResource { return ResponseEntity.ok("Activity deleted"); } + @Operation(summary = "Modifie l'activité ayant l'identifiant correspondant") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Modification effectuée", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = ActiviteDTO.class))) + }) @PostMapping("/update/{id}") @ResponseBody @PreAuthorize("hasRole('Coach')") @@ -80,6 +104,12 @@ public class ActiviteResource { } + @Operation(summary = "Récupère l'activité ayant l'identifiant correspondant") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Récupération effectuée", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = ActiviteDTO.class))) + }) @GetMapping("/{id}") @PreAuthorize("hasRole('Coach') or hasRole('Athlete')") @ResponseBody @@ -93,6 +123,12 @@ public class ActiviteResource { } } + @Operation(summary = "Récupère toutes les activités") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Récupération effectuée", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = ActiviteDTO.class))) + }) @GetMapping("/all") @PreAuthorize("hasRole('Coach') or hasRole('Athlete')") @ResponseBody @@ -107,6 +143,12 @@ public class ActiviteResource { } + @Operation(summary = "Récupère les activités correspondant au thème donné") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Récupération effectuée", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = ActiviteDTO.class))) + }) @GetMapping("/theme/{theme}") @PreAuthorize("hasRole('Coach') or hasRole('Athlete')") @ResponseBody 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 a0230f0..8aa8c08 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/AthleteResource.java @@ -26,6 +26,11 @@ import hackathon.FrisbYEE.jpa.metier.Athlete; import hackathon.FrisbYEE.jpa.metier.Session; import hackathon.FrisbYEE.jpa.service.AthleteDAO; import hackathon.FrisbYEE.jpa.service.SessionDAO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; @RestController @RequestMapping("/athletes") @@ -34,6 +39,14 @@ public class AthleteResource { private AthleteDAO athleteDAO; private SessionDAO sessionDAO; + + @Operation(summary = "Crée un Athlète avec les informations fournies") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Renvoie l'athlète créé", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = AthleteDTO.class))) + }) + @PostMapping("/create") @PreAuthorize("hasRole('Admin')") // Only admin can create?? public ResponseEntity create(@RequestBody AthleteDTO dto) { @@ -42,7 +55,13 @@ public class AthleteResource { return ResponseEntity.status(HttpStatus.CREATED).body(mapToDTO(athlete)); } - @PostMapping("/all") + @Operation(summary = "Récupère tous les athlètes") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Récupère tous les athlètes", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = List.class))) + }) + @GetMapping("/all") @PreAuthorize("hasRole('Admin') or hasRole('Coach') or hasRole('Athlete')") public ResponseEntity> all() { List athletes = athleteDAO.findAll(); @@ -53,6 +72,12 @@ public class AthleteResource { return ResponseEntity.ok(dtos); } + @Operation(summary = "Récupère l'athlète ayant l'identifiant correspondant") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Récupération effectuée", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = AthleteDTO.class))) + }) @GetMapping("/{id}") @PreAuthorize("hasRole('Admin') or hasRole('Coach') or hasRole('Athlete')") public ResponseEntity getById(@PathVariable Integer id) { @@ -61,6 +86,12 @@ public class AthleteResource { .orElse(ResponseEntity.notFound().build()); } + @Operation(summary = "Met à jour l'athlète ayant l'identifiant correspondant") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Mise à jour effectuée", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = AthleteDTO.class))) + }) @PutMapping("/{id}") @PreAuthorize("hasRole('ADMIN') or #id == principal.id") public ResponseEntity update(@PathVariable Integer id,@RequestBody AthleteDTO dto) { @@ -88,6 +119,12 @@ public class AthleteResource { } } + @Operation(summary = "Supprime l'athlète ayant l'identifiant correspondant") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Suppression effectuée", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = AthleteDTO.class))) + }) @DeleteMapping("/{id}") @PreAuthorize("hasRole('Admin')") public ResponseEntity delete(@PathVariable Integer id) { @@ -116,6 +153,12 @@ public class AthleteResource { return athlete; } + @Operation(summary = "Récupère les sessions correspondant à l'athlète donné") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Récupération effectuée", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = SessionDTO.class))) + }) @GetMapping("/athlete/{id}/session") public List getSessionsAthlete(@PathVariable Integer athleteId) { // return pet @@ -136,6 +179,12 @@ public class AthleteResource { return athleteSessions; } + @Operation(summary = "Récupère toutes les sessions") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Récupération effectuée", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = SessionDTO.class))) + }) @GetMapping("/athletes/session") public List getAllSessions() { List sessions = sessionDAO.findAll(); @@ -151,6 +200,12 @@ public class AthleteResource { return sessionDTOs; } + @Operation(summary = "Récupère les activités correspondant à la session donnée") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Récupération effectuée", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = ActiviteDTO.class))) + }) @GetMapping("/athletes/session/{id}/activities") public List getActivitiesForSession(@PathVariable Integer id) { // Récupérer la session par ID @@ -171,6 +226,12 @@ public class AthleteResource { return new ArrayList<>(); } + @Operation(summary = "Récupère toutes les sessions après une date donnée") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Récupération effectuée", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = SessionDTO.class))) + }) @GetMapping("/athletes/{id}/session/after/{date}") public List getSessionsAfterDate(@PathVariable Integer id, @PathVariable String date) { // Récupérer l'athlète par ID @@ -194,6 +255,12 @@ public class AthleteResource { return new ArrayList<>(); } + @Operation(summary = "Récupère les sessions entre deux dates") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Récupération effectuée", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = SessionDTO.class))) + }) @GetMapping("/athletes/{id}/session/between/{startDate}/{endDate}") public List getSessionsBetweenDates(@PathVariable Integer id, @PathVariable String startDate, @PathVariable String endDate) { // Récupérer l'athlète par ID