Bon checkpoint + Refactoring
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user