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