Refactoring + Checkpoint
This commit is contained in:
@@ -651,7 +651,6 @@ public class EventsResource {
|
||||
return Response.ok(responseDTOs).build();
|
||||
}
|
||||
|
||||
|
||||
@POST
|
||||
@Path("/{id}/favorite")
|
||||
@Transactional
|
||||
@@ -750,5 +749,90 @@ public class EventsResource {
|
||||
String shareLink = "https://lions.dev /events/" + eventId;
|
||||
return Response.ok(Map.of("shareLink", shareLink)).build();
|
||||
}
|
||||
|
||||
/**
|
||||
* Endpoint pour fermer un événement.
|
||||
*
|
||||
* @param eventId L'ID de l'événement.
|
||||
* @return Une réponse HTTP indiquant le succès de la fermeture.
|
||||
*/
|
||||
@PATCH
|
||||
@Path("/{id}/close")
|
||||
@Transactional
|
||||
@Operation(
|
||||
summary = "Fermer un événement",
|
||||
description = "Ferme un événement et empêche les nouvelles participations"
|
||||
)
|
||||
public Response closeEvent(@PathParam("id") UUID eventId) {
|
||||
LOG.info("Tentative de fermeture de l'événement avec l'ID : " + eventId);
|
||||
|
||||
// Recherche de l'événement par ID
|
||||
Events event = eventsRepository.findById(eventId);
|
||||
if (event == null) {
|
||||
LOG.warn("Événement non trouvé avec l'ID : " + eventId);
|
||||
return Response.status(Response.Status.NOT_FOUND)
|
||||
.entity("Événement non trouvé.")
|
||||
.build();
|
||||
}
|
||||
|
||||
// Marquer l'événement comme fermé
|
||||
event.setStatus("fermé"); // Modification du statut de l'événement
|
||||
eventsRepository.persist(event); // Persister les modifications dans la base
|
||||
LOG.info("Événement fermé avec succès : " + event.getTitle());
|
||||
|
||||
// Retourner une réponse HTTP 200 OK avec le DTO de l'événement fermé
|
||||
return Response.ok(new EventCreateResponseDTO(event)).build();
|
||||
}
|
||||
|
||||
/**
|
||||
* Endpoint pour réouvrir un événement.
|
||||
*
|
||||
* @param eventId L'ID de l'événement à rouvrir.
|
||||
* @return Une réponse HTTP indiquant le succès ou l'échec de la réouverture.
|
||||
*/
|
||||
@PATCH
|
||||
@Path("{eventId}/reopen")
|
||||
@Transactional
|
||||
@Operation(
|
||||
summary = "Rouvrir un événement",
|
||||
description = "Rouvre un événement existant qui est actuellement fermé"
|
||||
)
|
||||
public Response reopenEvent(@PathParam("eventId") UUID eventId) {
|
||||
LOG.info("Tentative de réouverture de l'événement avec l'ID : " + eventId);
|
||||
|
||||
// Recherche de l'événement par ID
|
||||
Events event = eventsRepository.findById(eventId);
|
||||
if (event == null) {
|
||||
LOG.warn("Événement non trouvé avec l'ID : " + eventId);
|
||||
return Response.status(Response.Status.NOT_FOUND)
|
||||
.entity("Événement non trouvé.")
|
||||
.build();
|
||||
}
|
||||
|
||||
// Vérifier si l'événement est déjà ouvert
|
||||
if ("ouvert".equals(event.getStatus())) {
|
||||
LOG.warn("L'événement est déjà ouvert : " + eventId);
|
||||
return Response.status(Response.Status.BAD_REQUEST)
|
||||
.entity("L'événement est déjà ouvert.")
|
||||
.build();
|
||||
}
|
||||
|
||||
// Vérifier si l'événement est fermé avant de tenter la réouverture
|
||||
if (!"fermé".equals(event.getStatus())) {
|
||||
LOG.warn("L'événement n'est pas fermé, donc il ne peut pas être rouvert : " + eventId);
|
||||
return Response.status(Response.Status.BAD_REQUEST)
|
||||
.entity("L'événement n'est pas fermé et ne peut pas être rouvert.")
|
||||
.build();
|
||||
}
|
||||
|
||||
// Réouvrir l'événement en mettant à jour son statut
|
||||
event.setStatus("ouvert"); // Changer le statut à "Ouvert"
|
||||
eventsRepository.persist(event); // Persister les modifications dans la base
|
||||
LOG.info("Événement rouvert avec succès : " + event.getTitle());
|
||||
|
||||
// Retourner une réponse HTTP 200 OK avec un message de succès
|
||||
return Response.ok("L'événement a été réouvert avec succès.").build();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user