feat(backend): Séparer les demandes d'amitié envoyées et reçues

- Ajout de méthodes dans FriendshipRepository pour récupérer séparément les demandes envoyées (findSentRequestsByUser) et reçues (findReceivedRequestsByUser)
- Ajout de méthodes dans FriendshipService pour lister les demandes envoyées (listSentFriendRequests) et reçues (listReceivedFriendRequests)
- Ajout de deux nouveaux endpoints REST:
  - GET /friends/sent/{userId} : récupère les demandes envoyées par un utilisateur
  - GET /friends/received/{userId} : récupère les demandes reçues par un utilisateur
- Permet une meilleure séparation logique entre les demandes que l'utilisateur a envoyées et celles qu'il a reçues
This commit is contained in:
dahoud
2026-01-07 16:33:14 +00:00
parent 2f33b09753
commit 4d6a5630fc
4 changed files with 235 additions and 18 deletions

View File

@@ -255,4 +255,46 @@ public class FriendshipService {
return friendships.stream().map(FriendshipReadStatusResponseDTO::new).toList();
}
/**
* Récupérer les demandes d'amitié envoyées par un utilisateur.
*
* @param userId ID de l'utilisateur.
* @param page Numéro de la page.
* @param size Taille de la page.
* @return Liste des demandes d'amitié envoyées.
*/
public List<FriendshipReadStatusResponseDTO> listSentFriendRequests(UUID userId, int page, int size) {
Users user = usersRepository.findById(userId);
if (user == null) {
logger.error("[ERROR] Utilisateur non trouvé.");
throw new UserNotFoundException("Utilisateur introuvable.");
}
List<Friendship> friendships = friendshipRepository.findSentRequestsByUser(user, FriendshipStatus.PENDING, page - 1, size);
logger.info("[LOG] " + friendships.size() + " demandes d'amitié envoyées récupérées.");
return friendships.stream().map(FriendshipReadStatusResponseDTO::new).toList();
}
/**
* Récupérer les demandes d'amitié reçues par un utilisateur.
*
* @param userId ID de l'utilisateur.
* @param page Numéro de la page.
* @param size Taille de la page.
* @return Liste des demandes d'amitié reçues.
*/
public List<FriendshipReadStatusResponseDTO> listReceivedFriendRequests(UUID userId, int page, int size) {
Users user = usersRepository.findById(userId);
if (user == null) {
logger.error("[ERROR] Utilisateur non trouvé.");
throw new UserNotFoundException("Utilisateur introuvable.");
}
List<Friendship> friendships = friendshipRepository.findReceivedRequestsByUser(user, FriendshipStatus.PENDING, page - 1, size);
logger.info("[LOG] " + friendships.size() + " demandes d'amitié reçues récupérées.");
return friendships.stream().map(FriendshipReadStatusResponseDTO::new).toList();
}
}