Documentation
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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<AthleteDTO> 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<List<AthleteDTO>> all() {
|
||||
List<Athlete> 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<AthleteDTO> 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<AthleteDTO> 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<Void> 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<SessionDTO> 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<SessionDTO> getAllSessions() {
|
||||
List<Session> 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<ActiviteDTO> 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<SessionDTO> 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<SessionDTO> getSessionsBetweenDates(@PathVariable Integer id, @PathVariable String startDate, @PathVariable String endDate) {
|
||||
// Récupérer l'athlète par ID
|
||||
|
||||
Reference in New Issue
Block a user