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

1from ports.get_messages_by_conversation_port import GetMessagesByConversationPort 

2from models.message_model import MessageModel 

3 

4from usecases.get_messages_by_conversation_useCase import GetMessagesByConversationUseCase 

5 

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 

12 

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