gestion des groupe, todo : rejoindre une session

This commit is contained in:
trochas
2026-01-12 14:06:38 +01:00
parent 4bd0e0a299
commit 3fce71b893
11 changed files with 171 additions and 27 deletions

View File

@@ -77,6 +77,36 @@ public class AthleteResource {
return ResponseEntity.ok(dtos);
}
@Operation(summary = "Récupère tous les athlètes d'un groupe")
@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/group/{groupe}")
@PreAuthorize("hasRole('admin') or hasRole('coach')")
public ResponseEntity<List<AthleteDTO>> allByGroup(@PathVariable String groupe) {
List<Athlete> athletes = athleteDAO.findAll();
List<AthleteDTO> dtos = new ArrayList<>();
for (Athlete athlete : athletes) {
if(groupe.equals("None")){
if(athlete.getGroupe().size()==0){
dtos.add(mapToDTO(athlete));
}
}
else{
boolean containsGroupe = false;
for (String g : athlete.getGroupe()) {
containsGroupe = containsGroupe || g.equals(groupe);
}
if(containsGroupe){
dtos.add(mapToDTO(athlete));
}
}
}
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)))
@@ -151,6 +181,7 @@ public class AthleteResource {
dto.setPrenom(athlete.getPrenom());
dto.setCategorie(athlete.getCategorie());
dto.setNiveau(athlete.getNiveau());
dto.setGroupes(athlete.getGroupe());
return dto;
}

View File

@@ -76,6 +76,23 @@ public class SessionResource {
return ResponseEntity.ok(dtos);
}
@GetMapping("/all/group/{groupe}")
@PreAuthorize("hasRole('admin') or hasRole('coach') or hasRole('athlete')")
public ResponseEntity<List<SessionDTO>> getAllByGroup(@PathVariable String groupe) {
List<Session> sessions = sessionDAO.findAll();
List<SessionDTO> dtos = new ArrayList<>();
String groupeStr = groupe;
if(groupe.equals("None")) groupeStr = "";
for (Session session : sessions) {
if(session.getGroupe().equals(groupeStr)){
dtos.add(maptoDTO(session));
}
}
return ResponseEntity.ok(dtos);
}
@GetMapping("/all-between-dates")
@PreAuthorize("hasRole('admin') or hasRole('coach') or hasRole('athlete')")
public ResponseEntity<List<SessionDTO>> getAllBetweenDates(
@@ -100,6 +117,31 @@ public class SessionResource {
return ResponseEntity.ok(dtos);
}
@GetMapping("/all-between-dates/group/{groupe}")
@PreAuthorize("hasRole('admin') or hasRole('coach') or hasRole('athlete')")
public ResponseEntity<List<SessionDTO>> getAllBetweenDates(@RequestParam LocalDate startDate,@RequestParam LocalDate endDate,@PathVariable String groupe) {
List<Session> sessions = sessionDAO.findAll();
List<SessionDTO> dtos = new ArrayList<>();
System.out.println("date : " + startDate + " " + endDate);
String groupeStr = groupe;
if(groupe.equals("None")) groupeStr = "";
for (Session session : sessions) {
if(session.getGroupe().equals(groupeStr)){
LocalDate sessionDate = session.getCreneau().toLocalDate();
boolean isBetween =
(!sessionDate.isBefore(startDate) || session.getIsRecurrent()) &&
!sessionDate.isAfter(endDate);
if (isBetween) {
dtos.add(maptoDTO(session));
}
}
}
return ResponseEntity.ok(dtos);
}
@GetMapping("/{id}")
@PreAuthorize("hasRole('coach') or hasRole('athlete')")
public ResponseEntity<?> getById(@PathVariable Integer id) {