Bon checkpoint + Refactoring

This commit is contained in:
DahoudG
2024-11-08 20:30:39 +00:00
parent 841789f8c2
commit 588984aa9c
13 changed files with 1048 additions and 478 deletions

View File

@@ -16,11 +16,11 @@ import com.lions.dev.repository.UsersRepository;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.transaction.Transactional;
import org.jboss.logging.Logger;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
import org.jboss.logging.Logger;
/**
* Service pour gérer les relations d'amitié.
@@ -196,25 +196,29 @@ public class FriendshipService {
throw new UserNotFoundException("Utilisateur introuvable.");
}
// Récupérer les amitiés acceptées
List<Friendship> friendships = friendshipRepository.findFriendsByUser(user, page, size);
logger.info("[LOG] " + friendships.size() + " amis récupérés.");
logger.info("[LOG] " + friendships.size() + " amis récupérés (avant filtrage des doublons).");
// Ajouter un log pour chaque amitié récupérée
friendships.forEach(friendship -> logger.info("[LOG] Ami : " + friendship.getFriend().getEmail()));
// Utilisation d'un ensemble pour stocker des clés uniques basées sur les IDs des amis
Set<String> uniqueFriendKeys = new HashSet<>();
return friendships.stream()
.map(friendship -> new FriendshipReadFriendDetailsResponseDTO(
friendship.getUser().getId(),
friendship.getFriend().getId(),
friendship.getFriend().getNom(),
friendship.getFriend().getPrenoms(),
friendship.getFriend().getEmail(),
friendship.getStatus(),
friendship.getCreatedAt(),
friendship.getUpdatedAt()
))
.collect(Collectors.toList());
.map(friendship -> {
Users friend = friendship.getUser().equals(user) ? friendship.getFriend() : friendship.getUser();
return new FriendshipReadFriendDetailsResponseDTO(
user.getId(),
friend.getId(),
friend.getNom(),
friend.getPrenoms(),
friend.getEmail(),
friendship.getStatus(),
friendship.getCreatedAt(),
friendship.getUpdatedAt()
);
})
.filter(dto -> uniqueFriendKeys.add(dto.getUserId().toString() + "-" + dto.getFriendId().toString()))
.limit(size) // Limite la taille au paramètre 'size' requis
.toList();
}
/**
@@ -234,6 +238,6 @@ public class FriendshipService {
List<Friendship> friendships = friendshipRepository.findByUserAndStatus(user, request.getStatus(), request.getPage() - 1, request.getSize());
logger.info("[LOG] " + friendships.size() + " demandes d'amitié récupérées.");
return friendships.stream().map(FriendshipReadStatusResponseDTO::new).collect(Collectors.toList());
return friendships.stream().map(FriendshipReadStatusResponseDTO::new).toList();
}
}