Amélioration structurelle Best Practices Endpoint

This commit is contained in:
DahoudG
2024-09-10 23:44:56 +00:00
parent 57ad010feb
commit e54a74d248
35 changed files with 1296 additions and 1017 deletions

View File

@@ -0,0 +1,86 @@
package com.lions.dev.service;
import com.lions.dev.entity.events.Events;
import com.lions.dev.entity.users.Users;
import com.lions.dev.repository.EventsRepository;
import com.lions.dev.dto.request.events.EventRequestDTO;
import com.lions.dev.exception.EventNotFoundException;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;
/**
* Service de gestion des événements.
* Ce service contient la logique métier pour la création, récupération et suppression des événements.
*/
@ApplicationScoped
public class EventService {
@Inject
EventsRepository eventsRepository;
/**
* Crée un nouvel événement dans le système.
*
* @param eventRequestDTO Le DTO contenant les informations de l'événement à créer.
* @param creator L'utilisateur créateur de l'événement.
* @return L'événement créé.
*/
public Events createEvent(EventRequestDTO eventRequestDTO, Users creator) {
Events event = new Events();
event.setTitle(eventRequestDTO.getTitle());
event.setStartDate(eventRequestDTO.getStartDate());
event.setEndDate(eventRequestDTO.getEndDate());
event.setCreator(creator);
eventsRepository.persist(event);
System.out.println("[LOG] Événement créé : " + event.getTitle());
return event;
}
/**
* Récupère un événement par son ID.
*
* @param id L'ID de l'événement.
* @return L'événement trouvé.
* @throws EventNotFoundException Si l'événement n'est pas trouvé.
*/
public Events getEventById(UUID id) {
Events event = eventsRepository.findById(id);
if (event == null) {
System.out.println("[ERROR] Événement non trouvé avec l'ID : " + id);
throw new EventNotFoundException("Événement non trouvé avec l'ID : " + id);
}
System.out.println("[LOG] Événement trouvé avec l'ID : " + id);
return event;
}
/**
* Récupère tous les événements après une date donnée.
*
* @param startDate La date de début de filtre.
* @return Une liste d'événements.
*/
public List<Events> getEventsAfterDate(LocalDateTime startDate) {
List<Events> events = eventsRepository.findEventsAfterDate(startDate);
System.out.println("[LOG] Nombre d'événements trouvés après la date " + startDate + " : " + events.size());
return events;
}
/**
* Supprime un événement par son ID.
*
* @param id L'ID de l'événement à supprimer.
* @return true si l'événement a été supprimé, false sinon.
*/
public boolean deleteEvent(UUID id) {
boolean deleted = eventsRepository.deleteById(id);
if (deleted) {
System.out.println("[LOG] Événement supprimé avec succès : " + id);
} else {
System.out.println("[ERROR] Échec de la suppression de l'événement avec l'ID : " + id);
}
return deleted;
}
}