Refactoring - Bonne version améliorée

This commit is contained in:
dahoud
2026-02-05 14:14:45 +00:00
parent a515963a4a
commit dd4dbe111e
56 changed files with 4274 additions and 2142 deletions

View File

@@ -7,7 +7,7 @@ import com.lions.dev.dto.request.events.EventCreateRequestDTO;
import com.lions.dev.entity.events.Events;
import com.lions.dev.entity.friends.Friendship;
import com.lions.dev.entity.users.Users;
import com.lions.dev.exception.EventNotFoundException;
import com.lions.dev.core.errors.exceptions.EventNotFoundException;
import com.lions.dev.exception.UserNotFoundException;
import com.lions.dev.repository.EventsRepository;
import com.lions.dev.repository.FriendshipRepository;
@@ -322,6 +322,23 @@ public class EventService {
return events;
}
/**
* Récupère les événements par catégorie avec pagination.
*
* @param category La catégorie des événements.
* @param page Le numéro de la page (0-indexé)
* @param size La taille de la page
* @return La liste paginée des événements dans cette catégorie.
*/
public List<Events> findEventsByCategory(String category, int page, int size) {
logger.info("[logger] Récupération des événements dans la catégorie : {} (page: {}, size: {})", category, page, size);
List<Events> events = eventsRepository.find("category", category)
.page(page, size)
.list();
logger.info("[logger] Nombre d'événements trouvés dans la catégorie '{}' : {}", category, events.size());
return events;
}
/**
* Recherche des événements par mot-clé dans le titre ou la description.
*
@@ -335,6 +352,23 @@ public class EventService {
return events;
}
/**
* Recherche des événements par mot-clé avec pagination.
*
* @param keyword Le mot-clé à rechercher.
* @param page Le numéro de la page (0-indexé)
* @param size La taille de la page
* @return La liste paginée des événements correspondant au mot-clé.
*/
public List<Events> searchEvents(String keyword, int page, int size) {
logger.info("[logger] Recherche d'événements avec le mot-clé : {} (page: {}, size: {})", keyword, page, size);
List<Events> events = eventsRepository.find("title like ?1 or description like ?1", "%" + keyword + "%")
.page(page, size)
.list();
logger.info("[logger] Nombre d'événements trouvés pour le mot-clé '{}' : {}", keyword, events.size());
return events;
}
/**
* Récupère les événements auxquels un utilisateur participe.
*
@@ -410,6 +444,23 @@ public class EventService {
return events;
}
/**
* Récupère les événements futurs avec pagination.
*
* @param page Le numéro de la page (0-indexé)
* @param size La taille de la page
* @return Une liste paginée d'événements à venir.
*/
public List<Events> findUpcomingEvents(int page, int size) {
logger.info("[logger] Récupération des événements futurs (page: {}, size: {})", page, size);
LocalDateTime now = LocalDateTime.now();
List<Events> events = eventsRepository.find("startDate > ?1 ORDER BY startDate ASC", now)
.page(page, size)
.list();
logger.info("[logger] Nombre d'événements futurs trouvés : " + events.size());
return events;
}
/**
* Récupère les événements passés.
*
@@ -423,6 +474,23 @@ public class EventService {
return events;
}
/**
* Récupère les événements passés avec pagination.
*
* @param page Le numéro de la page (0-indexé)
* @param size La taille de la page
* @return Une liste paginée d'événements passés.
*/
public List<Events> findPastEvents(int page, int size) {
logger.info("[logger] Récupération des événements passés (page: {}, size: {})", page, size);
LocalDateTime now = LocalDateTime.now();
List<Events> events = eventsRepository.find("endDate < ?1 ORDER BY endDate DESC", now)
.page(page, size)
.list();
logger.info("[logger] Nombre d'événements passés trouvés : " + events.size());
return events;
}
/**
* Récupère les événements par localisation (ville ou adresse de l'établissement).
* v2.0 : plus de colonne location ; recherche sur establishment.address et establishment.city.
@@ -483,8 +551,8 @@ public class EventService {
Users user = usersRepository.findById(userId);
if (user == null) {
logger.error("[ERROR] Utilisateur non trouvé avec l'ID : " + userId);
throw new UserNotFoundException("Utilisateur non trouvé avec l'ID : " + userId);
logger.warn("[WARN] Utilisateur non trouvé avec l'ID : " + userId + " — retour liste vide");
return List.of();
}
// Récupérer toutes les relations d'amitié acceptées