merge
This commit is contained in:
@@ -4,7 +4,6 @@ import java.time.LocalDate;
|
||||
import java.time.chrono.ChronoLocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
@@ -53,7 +52,11 @@ public class AthleteResource {
|
||||
public ResponseEntity<AthleteDTO> create(@RequestBody AthleteDTO dto) {
|
||||
Athlete athlete = mapToEntity(dto);
|
||||
if(athleteDAO.existsByKeycloakId(athlete.getKeycloakId())) {
|
||||
return ResponseEntity.status(200).body(mapToDTO(athleteDAO.findByKeycloakId(athlete.getKeycloakId()).get()));
|
||||
Athlete existing = athleteDAO.findByKeycloakId(athlete.getKeycloakId()).orElse(null);
|
||||
if (existing != null) {
|
||||
return ResponseEntity.status(200).body(mapToDTO(existing));
|
||||
}
|
||||
return ResponseEntity.status(200).build();
|
||||
}
|
||||
athleteDAO.save(athlete);
|
||||
return ResponseEntity.status(201).body(mapToDTO(athlete));
|
||||
@@ -81,14 +84,16 @@ public class AthleteResource {
|
||||
@GetMapping("/{id}")
|
||||
@PreAuthorize("hasRole('admin') or hasRole('coach') or hasRole('athlete')")
|
||||
public ResponseEntity<AthleteDTO> getById(@PathVariable String id) {
|
||||
Athlete athlete = athleteDAO.findByKeycloakId(id).get();
|
||||
Athlete athlete = athleteDAO.findByKeycloakId(id).orElse(null);
|
||||
if (athlete == null) return ResponseEntity.notFound().build();
|
||||
return ResponseEntity.ok(mapToDTO(athlete));
|
||||
}
|
||||
|
||||
@GetMapping("/keycloak/{keycloak_id}")
|
||||
@PreAuthorize("hasRole('admin') or hasRole('coach') or hasRole('athlete')")
|
||||
public ResponseEntity<AthleteDTO> getByKeycloakId(@PathVariable String keycloak_id) {
|
||||
Athlete athlete = athleteDAO.findByKeycloakId(keycloak_id).get();
|
||||
Athlete athlete = athleteDAO.findByKeycloakId(keycloak_id).orElse(null);
|
||||
if (athlete == null) return ResponseEntity.notFound().build();
|
||||
return ResponseEntity.ok(mapToDTO(athlete));
|
||||
}
|
||||
|
||||
@@ -100,7 +105,8 @@ public class AthleteResource {
|
||||
@PreAuthorize("hasRole('admin') or #id == principal.id")
|
||||
public ResponseEntity<AthleteDTO> update(@PathVariable Integer id, @RequestBody AthleteDTO dto) {
|
||||
try {
|
||||
Athlete athlete = athleteDAO.findById(id).get();
|
||||
Athlete athlete = athleteDAO.findById(id).orElse(null);
|
||||
if (athlete == null) return ResponseEntity.notFound().build();
|
||||
athlete.setName(dto.getName());
|
||||
athlete.setCategorie(dto.getCategorie());
|
||||
athlete.setNiveau(dto.getNiveau());
|
||||
@@ -165,16 +171,15 @@ public class AthleteResource {
|
||||
})
|
||||
@GetMapping("/{athleteId}/session")
|
||||
public List<SessionDTO> getSessionsAthlete(@PathVariable Integer athleteId) {
|
||||
Optional<Athlete> athleteOpt = athleteDAO.findById(athleteId);
|
||||
if (athleteOpt.isEmpty()) {
|
||||
Athlete athlete = athleteDAO.findById(athleteId).orElse(null);
|
||||
if (athlete == null) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
List<Session> sessions = sessionDAO.findByAthletes_Id(athleteId);
|
||||
List<SessionDTO> athleteSessions = new ArrayList<>();
|
||||
|
||||
for (Session s : sessions) {
|
||||
if (s.getAthletes().contains(athlete.get())) {
|
||||
if (s.getAthletes().contains(athlete)) {
|
||||
SessionDTO dto = new SessionDTO();
|
||||
|
||||
dto.setId(s.getId());
|
||||
@@ -185,7 +190,7 @@ public class AthleteResource {
|
||||
activiteIDs.add(activite.getId());
|
||||
}
|
||||
dto.setActiviteIds(activiteIDs);
|
||||
dto.setCoachId(s.getCoach().getId());
|
||||
dto.setCoachId(s.getCoach() != null ? s.getCoach().getId() : null);
|
||||
dto.setDuree(s.getDuree());
|
||||
dto.setGroupe(s.getGroupe());
|
||||
dto.setIsRecurrent(s.getIsRecurrent());
|
||||
@@ -229,9 +234,8 @@ public class AthleteResource {
|
||||
@GetMapping("/athletes/session/{id}/activities")
|
||||
public List<ActiviteDTO> getActivitiesForSession(@PathVariable Integer id) {
|
||||
// Récupérer la session par ID
|
||||
java.util.Optional<Session> sessionOpt = sessionDAO.findById(id);
|
||||
if (sessionOpt.isPresent()) {
|
||||
Session session = sessionOpt.get();
|
||||
Session session = sessionDAO.findById(id).orElse(null);
|
||||
if (session != null) {
|
||||
// Retourner les activités de la session
|
||||
List<ActiviteDTO> activiteDTOs = new ArrayList<>();
|
||||
for (Activite activite : session.getActivites()) {
|
||||
@@ -253,9 +257,8 @@ public class AthleteResource {
|
||||
@GetMapping("/athletes/{id}/session/after/{date}")
|
||||
public List<SessionDTO> getSessionsAfterDate(@PathVariable Integer id, @PathVariable String date) {
|
||||
// Récupérer l'athlète par ID
|
||||
java.util.Optional<Athlete> athleteOpt = athleteDAO.findById(id);
|
||||
if (athleteOpt.isPresent()) {
|
||||
Athlete athlete = athleteOpt.get();
|
||||
Athlete athlete = athleteDAO.findById(id).orElse(null);
|
||||
if (athlete != null) {
|
||||
// Récupérer les sessions de l'athlète après la date donnée
|
||||
List<Session> sessions = sessionDAO.findAll();
|
||||
List<SessionDTO> filteredSessions = new ArrayList<>();
|
||||
@@ -284,9 +287,8 @@ public class AthleteResource {
|
||||
public List<SessionDTO> getSessionsBetweenDates(@PathVariable Integer id, @PathVariable String startDate,
|
||||
@PathVariable String endDate) {
|
||||
// Récupérer l'athlète par ID
|
||||
java.util.Optional<Athlete> athleteOpt = athleteDAO.findById(id);
|
||||
if (athleteOpt.isPresent()) {
|
||||
Athlete athlete = athleteOpt.get();
|
||||
Athlete athlete = athleteDAO.findById(id).orElse(null);
|
||||
if (athlete != null) {
|
||||
// Récupérer les sessions de l'athlète entre les deux dates données
|
||||
List<Session> sessions = sessionDAO.findAll();
|
||||
List<SessionDTO> filteredSessions = new ArrayList<>();
|
||||
|
||||
Reference in New Issue
Block a user