From 800fdd4d12c5df015b02be6881a0577d3da68456 Mon Sep 17 00:00:00 2001 From: DahoudG Date: Wed, 25 Sep 2024 21:28:56 +0000 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20statut=20=C3=A9v=C3=A9ne?= =?UTF-8?q?ment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/events/EventUpdateRequestDTO.java | 1 + .../events/EventCreateResponseDTO.java | 2 ++ .../com/lions/dev/entity/events/Events.java | 5 +-- .../lions/dev/resource/EventsResource.java | 33 +++++++++++++++++++ .../com/lions/dev/service/EventService.java | 2 +- 5 files changed, 40 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/lions/dev/dto/request/events/EventUpdateRequestDTO.java b/src/main/java/com/lions/dev/dto/request/events/EventUpdateRequestDTO.java index 137a4c1..e0f1605 100644 --- a/src/main/java/com/lions/dev/dto/request/events/EventUpdateRequestDTO.java +++ b/src/main/java/com/lions/dev/dto/request/events/EventUpdateRequestDTO.java @@ -19,4 +19,5 @@ public class EventUpdateRequestDTO { private String category; private String link; private String imageUrl; + private String status; } diff --git a/src/main/java/com/lions/dev/dto/response/events/EventCreateResponseDTO.java b/src/main/java/com/lions/dev/dto/response/events/EventCreateResponseDTO.java index 7c79188..96d3d08 100644 --- a/src/main/java/com/lions/dev/dto/response/events/EventCreateResponseDTO.java +++ b/src/main/java/com/lions/dev/dto/response/events/EventCreateResponseDTO.java @@ -21,6 +21,7 @@ public class EventCreateResponseDTO { private String link; // Lien vers plus d'informations private String imageUrl; // URL d'une image pour l'événement private String creatorEmail; // Email du créateur de l'événement + private String status; /** * Constructeur qui transforme une entité Events en DTO. @@ -38,5 +39,6 @@ public class EventCreateResponseDTO { this.link = event.getLink(); this.imageUrl = event.getImageUrl(); this.creatorEmail = event.getCreator().getEmail(); + this.status = event.getStatus(); } } diff --git a/src/main/java/com/lions/dev/entity/events/Events.java b/src/main/java/com/lions/dev/entity/events/Events.java index bd58a98..2c95050 100644 --- a/src/main/java/com/lions/dev/entity/events/Events.java +++ b/src/main/java/com/lions/dev/entity/events/Events.java @@ -51,7 +51,7 @@ public class Events extends BaseEntity { private String imageUrl; // URL d'une image associée à l'événement @Column(name = "status", nullable = false) - private String status = "en cours"; // Le statut de l'événement (en cours, terminé, annulé, etc.) + private String status = "ouvert"; // Le statut de l'événement (en cours, terminé, annulé, etc.) @Column(name = "profile_image_url") private String profileImageUrl; // URL de la photo de profil @@ -105,7 +105,8 @@ public class Events extends BaseEntity { * Ferme l'événement en changeant son statut. */ public void setClosed(boolean closed) { - this.status = closed ? "fermé" : "en cours"; + this.status = closed ? "fermé" : "ouvert"; System.out.println("[LOG] Statut de l'événement mis à jour : " + this.title + " - " + this.status); } + } diff --git a/src/main/java/com/lions/dev/resource/EventsResource.java b/src/main/java/com/lions/dev/resource/EventsResource.java index 5036f12..24b9883 100644 --- a/src/main/java/com/lions/dev/resource/EventsResource.java +++ b/src/main/java/com/lions/dev/resource/EventsResource.java @@ -279,6 +279,39 @@ public class EventsResource { return Response.ok(new EventCreateResponseDTO(event)).build(); } + /** + * Endpoint pour réouvrir un événement. + * + * @param eventId L'ID de l'événement. + * @return Une réponse HTTP indiquant le succès de la réouverture. + */ + @POST + @Path("/{id}/reopen") + @Transactional + @Operation( + summary = "Réouvrir un événement", + description = "Réouvre un événement et permet à nouveau les participations") + public Response reopenEvent(@PathParam("id") UUID eventId) { + LOG.info("Tentative de réouverture de l'événement avec l'ID : " + eventId); + 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(); + } + + if ("ouvert".equals(event.getStatus())) { + LOG.warn("L'événement avec l'ID " + eventId + " est déjà ouvert."); + return Response.status(Response.Status.BAD_REQUEST).entity("L'événement est déjà ouvert.").build(); + } + + event.setStatus("ouvert"); // Marquer l'événement comme ouvert + eventsRepository.persist(event); + LOG.info("Événement réouvert avec succès : " + event.getTitle()); + return Response.ok(new EventCreateResponseDTO(event)).build(); + } + + /** * Endpoint pour mettre à jour un événement. * diff --git a/src/main/java/com/lions/dev/service/EventService.java b/src/main/java/com/lions/dev/service/EventService.java index 31fa4e0..c2ff8c2 100644 --- a/src/main/java/com/lions/dev/service/EventService.java +++ b/src/main/java/com/lions/dev/service/EventService.java @@ -44,7 +44,7 @@ public class EventService { event.setLink(eventCreateRequestDTO.getLink()); event.setImageUrl(eventCreateRequestDTO.getImageUrl()); event.setCreator(creator); - event.setStatus("en cours"); + event.setStatus("ouvert"); eventsRepository.persist(event); logger.info("[LOG] Événement créé avec succès : {}", event.getTitle());