Coverage for src/app/controllers/get_messages_by_conversation_controller.py: 41%
15 statements
« prev ^ index » next coverage.py v7.7.0, created at 2025-04-03 00:51 +0200
« prev ^ index » next coverage.py v7.7.0, created at 2025-04-03 00:51 +0200
1from dto.message_dto import MessageDTO
2from usecases.get_messages_by_conversation_useCase import GetMessagesByConversationUseCase
3from typing import List
6class GetMessagesByConversationController:
7 """
8 Controller for retrieving messages by conversation from the database.
9 """
11 def __init__(self, get_messages_by_conversation_usecase: GetMessagesByConversationUseCase):
12 self.get_messages_by_conversation_usecase = get_messages_by_conversation_usecase
14 def get_messages_by_conversation(self, conversation_dto: MessageDTO) -> List[MessageDTO]:
15 """
16 Retrieve messages from the database by conversation DTO.
17 """
18 try:
19 # Validazione sull'input
20 if not conversation_dto.get_conversation_id():
21 raise ValueError("Invalid conversation ID")
23 conversation_model = MessageDTO(
24 id=conversation_dto.get_id(),
25 text=conversation_dto.get_text(),
26 is_bot=conversation_dto.get_is_bot(),
27 conversation_id=conversation_dto.get_conversation_id(),
28 rating=conversation_dto.get_rating(),
29 created_at=conversation_dto.get_created_at()
30 )
32 result_models = self.get_messages_by_conversation_usecase.get_messages_by_conversation(conversation_model)
34 return [
35 MessageDTO(
36 id=model.get_id(),
37 text=model.get_text(),
38 is_bot=model.get_is_bot(),
39 conversation_id=model.get_conversation_id(),
40 rating=model.get_rating(),
41 created_at=model.get_created_at()
42 )
43 for model in result_models
44 ]
45 except Exception as e:
46 raise e