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.metier.Session;
|
||||||
import hackathon.FrisbYEE.jpa.service.ActiviteDAO;
|
import hackathon.FrisbYEE.jpa.service.ActiviteDAO;
|
||||||
import hackathon.FrisbYEE.jpa.service.SessionDAO;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.ResponseEntity;
|
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")
|
@PostMapping("/create")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@PreAuthorize("hasRole('Coach')")
|
@PreAuthorize("hasRole('Coach')")
|
||||||
@@ -46,6 +58,12 @@ public class ActiviteResource {
|
|||||||
return ResponseEntity.status(HttpStatus.CREATED).body("Activity created");
|
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}")
|
@DeleteMapping("/delete/{id}")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@PreAuthorize("hasRole('Coach')")
|
@PreAuthorize("hasRole('Coach')")
|
||||||
@@ -60,6 +78,12 @@ public class ActiviteResource {
|
|||||||
return ResponseEntity.ok("Activity deleted");
|
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}")
|
@PostMapping("/update/{id}")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@PreAuthorize("hasRole('Coach')")
|
@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}")
|
@GetMapping("/{id}")
|
||||||
@PreAuthorize("hasRole('Coach') or hasRole('Athlete')")
|
@PreAuthorize("hasRole('Coach') or hasRole('Athlete')")
|
||||||
@ResponseBody
|
@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")
|
@GetMapping("/all")
|
||||||
@PreAuthorize("hasRole('Coach') or hasRole('Athlete')")
|
@PreAuthorize("hasRole('Coach') or hasRole('Athlete')")
|
||||||
@ResponseBody
|
@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}")
|
@GetMapping("/theme/{theme}")
|
||||||
@PreAuthorize("hasRole('Coach') or hasRole('Athlete')")
|
@PreAuthorize("hasRole('Coach') or hasRole('Athlete')")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
|
|||||||
@@ -26,6 +26,11 @@ import hackathon.FrisbYEE.jpa.metier.Athlete;
|
|||||||
import hackathon.FrisbYEE.jpa.metier.Session;
|
import hackathon.FrisbYEE.jpa.metier.Session;
|
||||||
import hackathon.FrisbYEE.jpa.service.AthleteDAO;
|
import hackathon.FrisbYEE.jpa.service.AthleteDAO;
|
||||||
import hackathon.FrisbYEE.jpa.service.SessionDAO;
|
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
|
@RestController
|
||||||
@RequestMapping("/athletes")
|
@RequestMapping("/athletes")
|
||||||
@@ -34,6 +39,14 @@ public class AthleteResource {
|
|||||||
private AthleteDAO athleteDAO;
|
private AthleteDAO athleteDAO;
|
||||||
private SessionDAO sessionDAO;
|
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")
|
@PostMapping("/create")
|
||||||
@PreAuthorize("hasRole('Admin')") // Only admin can create??
|
@PreAuthorize("hasRole('Admin')") // Only admin can create??
|
||||||
public ResponseEntity<AthleteDTO> create(@RequestBody AthleteDTO dto) {
|
public ResponseEntity<AthleteDTO> create(@RequestBody AthleteDTO dto) {
|
||||||
@@ -42,7 +55,13 @@ public class AthleteResource {
|
|||||||
return ResponseEntity.status(HttpStatus.CREATED).body(mapToDTO(athlete));
|
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')")
|
@PreAuthorize("hasRole('Admin') or hasRole('Coach') or hasRole('Athlete')")
|
||||||
public ResponseEntity<List<AthleteDTO>> all() {
|
public ResponseEntity<List<AthleteDTO>> all() {
|
||||||
List<Athlete> athletes = athleteDAO.findAll();
|
List<Athlete> athletes = athleteDAO.findAll();
|
||||||
@@ -53,6 +72,12 @@ public class AthleteResource {
|
|||||||
return ResponseEntity.ok(dtos);
|
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}")
|
@GetMapping("/{id}")
|
||||||
@PreAuthorize("hasRole('Admin') or hasRole('Coach') or hasRole('Athlete')")
|
@PreAuthorize("hasRole('Admin') or hasRole('Coach') or hasRole('Athlete')")
|
||||||
public ResponseEntity<AthleteDTO> getById(@PathVariable Integer id) {
|
public ResponseEntity<AthleteDTO> getById(@PathVariable Integer id) {
|
||||||
@@ -61,6 +86,12 @@ public class AthleteResource {
|
|||||||
.orElse(ResponseEntity.notFound().build());
|
.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}")
|
@PutMapping("/{id}")
|
||||||
@PreAuthorize("hasRole('ADMIN') or #id == principal.id")
|
@PreAuthorize("hasRole('ADMIN') or #id == principal.id")
|
||||||
public ResponseEntity<AthleteDTO> update(@PathVariable Integer id,@RequestBody AthleteDTO dto) {
|
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}")
|
@DeleteMapping("/{id}")
|
||||||
@PreAuthorize("hasRole('Admin')")
|
@PreAuthorize("hasRole('Admin')")
|
||||||
public ResponseEntity<Void> delete(@PathVariable Integer id) {
|
public ResponseEntity<Void> delete(@PathVariable Integer id) {
|
||||||
@@ -116,6 +153,12 @@ public class AthleteResource {
|
|||||||
return athlete;
|
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")
|
@GetMapping("/athlete/{id}/session")
|
||||||
public List<SessionDTO> getSessionsAthlete(@PathVariable Integer athleteId) {
|
public List<SessionDTO> getSessionsAthlete(@PathVariable Integer athleteId) {
|
||||||
// return pet
|
// return pet
|
||||||
@@ -136,6 +179,12 @@ public class AthleteResource {
|
|||||||
return athleteSessions;
|
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")
|
@GetMapping("/athletes/session")
|
||||||
public List<SessionDTO> getAllSessions() {
|
public List<SessionDTO> getAllSessions() {
|
||||||
List<Session> sessions = sessionDAO.findAll();
|
List<Session> sessions = sessionDAO.findAll();
|
||||||
@@ -151,6 +200,12 @@ public class AthleteResource {
|
|||||||
return sessionDTOs;
|
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")
|
@GetMapping("/athletes/session/{id}/activities")
|
||||||
public List<ActiviteDTO> getActivitiesForSession(@PathVariable Integer id) {
|
public List<ActiviteDTO> getActivitiesForSession(@PathVariable Integer id) {
|
||||||
// Récupérer la session par ID
|
// Récupérer la session par ID
|
||||||
@@ -171,6 +226,12 @@ public class AthleteResource {
|
|||||||
return new ArrayList<>();
|
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}")
|
@GetMapping("/athletes/{id}/session/after/{date}")
|
||||||
public List<SessionDTO> getSessionsAfterDate(@PathVariable Integer id, @PathVariable String date) {
|
public List<SessionDTO> getSessionsAfterDate(@PathVariable Integer id, @PathVariable String date) {
|
||||||
// Récupérer l'athlète par ID
|
// Récupérer l'athlète par ID
|
||||||
@@ -194,6 +255,12 @@ public class AthleteResource {
|
|||||||
return new ArrayList<>();
|
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}")
|
@GetMapping("/athletes/{id}/session/between/{startDate}/{endDate}")
|
||||||
public List<SessionDTO> getSessionsBetweenDates(@PathVariable Integer id, @PathVariable String startDate, @PathVariable String endDate) {
|
public List<SessionDTO> getSessionsBetweenDates(@PathVariable Integer id, @PathVariable String startDate, @PathVariable String endDate) {
|
||||||
// Récupérer l'athlète par ID
|
// Récupérer l'athlète par ID
|
||||||
|
|||||||
Reference in New Issue
Block a user