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

1from dto.message_dto import MessageDTO 

2from usecases.get_messages_by_conversation_useCase import GetMessagesByConversationUseCase 

3from typing import List 

4 

5 

6class GetMessagesByConversationController: 

7 """ 

8 Controller for retrieving messages by conversation from the database. 

9 """ 

10 

11 def __init__(self, get_messages_by_conversation_usecase: GetMessagesByConversationUseCase): 

12 self.get_messages_by_conversation_usecase = get_messages_by_conversation_usecase 

13 

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") 

22 

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 ) 

31 

32 result_models = self.get_messages_by_conversation_usecase.get_messages_by_conversation(conversation_model) 

33 

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