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

1from dto.message_dto import MessageDTO 

2from usecases.get_message_useCase import GetMessageUseCase 

3from models.message_model import MessageModel 

4 

5 

6class GetMessageController: 

7 """ 

8 Controller for retrieving a message from the database. 

9 """ 

10 

11 def __init__(self, get_message_usecase: GetMessageUseCase): 

12 

13 self.get_message_usecase = get_message_usecase 

14 

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: 

24 

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 ) 

33 

34 message_result = self.get_message_usecase.get_message(message_model) 

35 

36 if not message_result: 

37 return None 

38 

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 ) 

47 

48 except Exception as e: 

49 raise e