Refactoring - Bonne version améliorée
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user