Coverage for src/app/services/get_messages_by_conversation_service.py: 100%
12 statements
« prev ^ index » next coverage.py v7.7.0, created at 2025-04-03 00:42 +0200
« prev ^ index » next coverage.py v7.7.0, created at 2025-04-03 00:42 +0200
1from ports.get_messages_by_conversation_port import GetMessagesByConversationPort
2from models.message_model import MessageModel
4from usecases.get_messages_by_conversation_useCase import GetMessagesByConversationUseCase
6class GetMessagesByConversationService(GetMessagesByConversationUseCase):
7 """
8 Service class to retrieve messages by conversation ID.
9 """
10 def __init__(self, get_messages_by_conversation_port: GetMessagesByConversationPort):
11 self.get_messages_by_conversation_port = get_messages_by_conversation_port
13 def get_messages_by_conversation(self, conversation: MessageModel) -> list[MessageModel]:
14 """
15 Retrieve messages by conversation.
16 Args:
17 conversation (MessageModel): The conversation object containing the ID to retrieve messages for.
18 Returns:
19 list[MessageModel]: A list of retrieved messages, ordered by creation time.
20 """
21 try:
22 messages = self.get_messages_by_conversation_port.get_messages_by_conversation(conversation)
23 # Sort messages by the created_at attribute
24 return sorted(messages, key=lambda message: message.get_created_at() or "")
25 except Exception as e:
26 raise e