Coverage for src/app/controllers/get_message_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_message_useCase import GetMessageUseCase
3from models.message_model import MessageModel
6class GetMessageController:
7 """
8 Controller for retrieving a message from the database.
9 """
11 def __init__(self, get_message_usecase: GetMessageUseCase):
13 self.get_message_usecase = get_message_usecase
15 def get_message(self, message_dto: MessageDTO) -> MessageDTO:
16 """
17 Retrieve a message by its ID.
18 Args:
19 message_dto (MessageDTO): The message DTO containing the ID to retrieve.
20 Returns:
21 MessageDTO: The retrieved message DTO.
22 """
23 try:
25 message_model = MessageModel(
26 id=message_dto.get_id(),
27 text=message_dto.get_text(),
28 is_bot=message_dto.get_is_bot(),
29 conversation_id=message_dto.get_conversation_id(),
30 rating=message_dto.get_rating(),
31 created_at=message_dto.get_created_at()
32 )
34 message_result = self.get_message_usecase.get_message(message_model)
36 if not message_result:
37 return None
39 return MessageDTO(
40 id=message_result.get_id(),
41 text=message_result.get_text(),
42 is_bot=message_dto.get_is_bot(),
43 conversation_id=message_result.get_conversation_id(),
44 rating=message_result.get_rating(),
45 created_at=message_result.get_created_at()
46 )
48 except Exception as e:
49 raise e