Refactoring

This commit is contained in:
dahoud
2026-01-31 16:54:46 +00:00
parent ce89face73
commit 9dc9ca591c
85 changed files with 2643 additions and 381 deletions

View File

@@ -14,6 +14,7 @@ import io.smallrye.reactive.messaging.kafka.api.OutgoingKafkaRecordMetadata;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.transaction.Transactional;
import org.jboss.logging.Logger;
import java.util.HashMap;
import java.util.List;
@@ -25,12 +26,12 @@ import java.util.UUID;
*
* Ce service contient la logique métier pour l'envoi de messages,
* la récupération de conversations, et la gestion des messages non lus.
*
* Tous les logs nécessaires pour la traçabilité sont intégrés.
*/
@ApplicationScoped
public class MessageService {
private static final Logger logger = Logger.getLogger(MessageService.class);
@Inject
MessageRepository messageRepository;
@@ -65,7 +66,7 @@ public class MessageService {
String content,
String messageType,
String mediaUrl) {
System.out.println("[LOG] Envoi de message de " + senderId + " à " + recipientId);
logger.info("[MessageService] Envoi de message de " + senderId + " à " + recipientId);
// Récupérer les utilisateurs
Users sender = usersRepository.findById(senderId);
@@ -91,7 +92,7 @@ public class MessageService {
// Persister le message
messageRepository.persist(message);
System.out.println("[LOG] Message créé avec l'ID : " + message.getId());
logger.info("[MessageService] Message créé avec l'ID : " + message.getId());
// Mettre à jour la conversation
conversation.updateLastMessage(message);
@@ -112,9 +113,9 @@ public class MessageService {
recipientId,
null
);
System.out.println("[LOG] Notification créée pour le destinataire");
logger.info("[MessageService] Notification créée pour le destinataire");
} catch (Exception e) {
System.out.println("[ERROR] Erreur lors de la création de la notification : " + e.getMessage());
logger.error("[MessageService] Erreur lors de la création de la notification : " + e.getMessage());
}
// TEMPS RÉEL : Publier dans Kafka (v2.0)
@@ -149,12 +150,12 @@ public class MessageService {
event,
() -> java.util.concurrent.CompletableFuture.completedFuture(null), // ack
throwable -> {
System.out.println("[ERROR] Erreur envoi Kafka: " + throwable.getMessage());
logger.error("[MessageService] Erreur envoi Kafka: " + throwable.getMessage());
return java.util.concurrent.CompletableFuture.completedFuture(null); // nack
}
).addMetadata(kafkaMetadata));
System.out.println("[LOG] Message publié dans Kafka: " + message.getId());
logger.info("[MessageService] Message publié dans Kafka: " + message.getId());
// Envoyer confirmation de délivrance à l'expéditeur (via Kafka aussi)
try {
@@ -181,9 +182,9 @@ public class MessageService {
throwable -> java.util.concurrent.CompletableFuture.completedFuture(null)
).addMetadata(deliveryKafkaMetadata));
System.out.println("[LOG] Confirmation de délivrance publiée dans Kafka pour : " + senderId);
logger.info("[MessageService] Confirmation de délivrance publiée dans Kafka pour : " + senderId);
} catch (Exception deliveryEx) {
System.out.println("[ERROR] Erreur publication confirmation délivrance : " + deliveryEx.getMessage());
logger.error("[MessageService] Erreur publication confirmation délivrance : " + deliveryEx.getMessage());
// Ne pas bloquer si la confirmation échoue
}
} catch (Exception e) {
@@ -202,7 +203,7 @@ public class MessageService {
* @throws UserNotFoundException Si l'utilisateur n'existe pas
*/
public List<Conversation> getUserConversations(UUID userId) {
System.out.println("[LOG] Récupération des conversations pour l'utilisateur ID : " + userId);
logger.info("[MessageService] Récupération des conversations pour l'utilisateur ID : " + userId);
Users user = usersRepository.findById(userId);
if (user == null) {
@@ -221,7 +222,7 @@ public class MessageService {
* @return Liste paginée des messages
*/
public List<Message> getConversationMessages(UUID conversationId, int page, int size) {
System.out.println("[LOG] Récupération des messages pour la conversation ID : " + conversationId);
logger.info("[MessageService] Récupération des messages pour la conversation ID : " + conversationId);
return messageRepository.findByConversationId(conversationId, page, size);
}
@@ -232,7 +233,7 @@ public class MessageService {
* @return La conversation
*/
public Conversation getConversation(UUID conversationId) {
System.out.println("[LOG] Récupération de la conversation ID : " + conversationId);
logger.info("[MessageService] Récupération de la conversation ID : " + conversationId);
return conversationRepository.findById(conversationId);
}
@@ -245,7 +246,7 @@ public class MessageService {
* @throws UserNotFoundException Si l'un des utilisateurs n'existe pas
*/
public Conversation getConversationBetweenUsers(UUID user1Id, UUID user2Id) {
System.out.println("[LOG] Recherche de conversation entre " + user1Id + " et " + user2Id);
logger.info("[MessageService] Recherche de conversation entre " + user1Id + " et " + user2Id);
Users user1 = usersRepository.findById(user1Id);
Users user2 = usersRepository.findById(user2Id);
@@ -265,7 +266,7 @@ public class MessageService {
*/
@Transactional
public Message markMessageAsRead(UUID messageId) {
System.out.println("[LOG] Marquage du message comme lu : " + messageId);
logger.info("[MessageService] Marquage du message comme lu : " + messageId);
Message message = messageRepository.findById(messageId);
if (message == null) {
@@ -309,12 +310,12 @@ public class MessageService {
throwable -> java.util.concurrent.CompletableFuture.completedFuture(null)
).addMetadata(readKafkaMetadata));
System.out.println("[LOG] Confirmation de lecture publiée dans Kafka pour : " + message.getSender().getId());
logger.info("[MessageService] Confirmation de lecture publiée dans Kafka pour : " + message.getSender().getId());
} catch (Exception e) {
System.out.println("[ERROR] Erreur publication confirmation lecture : " + e.getMessage());
logger.error("[MessageService] Erreur publication confirmation lecture : " + e.getMessage());
}
} catch (Exception e) {
System.out.println("[ERROR] Erreur envoi confirmation lecture : " + e.getMessage());
logger.error("[MessageService] Erreur envoi confirmation lecture : " + e.getMessage());
}
return message;
@@ -329,7 +330,7 @@ public class MessageService {
*/
@Transactional
public int markAllMessagesAsRead(UUID conversationId, UUID userId) {
System.out.println("[LOG] Marquage de tous les messages comme lus pour la conversation " + conversationId);
logger.info("[MessageService] Marquage de tous les messages comme lus pour la conversation " + conversationId);
Conversation conversation = conversationRepository.findById(conversationId);
if (conversation == null) {
@@ -358,7 +359,7 @@ public class MessageService {
* @return Le nombre de messages non lus
*/
public long getTotalUnreadCount(UUID userId) {
System.out.println("[LOG] Récupération du nombre total de messages non lus pour l'utilisateur " + userId);
logger.info("[MessageService] Récupération du nombre total de messages non lus pour l'utilisateur " + userId);
return conversationRepository.countTotalUnreadMessages(userId);
}
@@ -370,7 +371,7 @@ public class MessageService {
*/
@Transactional
public boolean deleteMessage(UUID messageId) {
System.out.println("[LOG] Suppression du message ID : " + messageId);
logger.info("[MessageService] Suppression du message ID : " + messageId);
Message message = messageRepository.findById(messageId);
if (message == null) {
@@ -389,7 +390,7 @@ public class MessageService {
*/
@Transactional
public boolean deleteConversation(UUID conversationId) {
System.out.println("[LOG] Suppression de la conversation ID : " + conversationId);
logger.info("[MessageService] Suppression de la conversation ID : " + conversationId);
// Supprimer d'abord tous les messages
messageRepository.deleteByConversationId(conversationId);