Coverage for src/app/services/get_support_messages_service.py: 100%

13 statements  

« prev     ^ index     » next       coverage.py v7.7.0, created at 2025-04-03 00:42 +0200

1from ports.get_support_messages_port import GetSupportMessagesPort 

2from models.support_message_model import SupportMessageModel 

3from usecases.get_support_messages_useCase import GetSupportMessagesUseCase 

4 

5class GetSupportMessagesService(GetSupportMessagesUseCase): 

6 """ 

7 Service class to retrieve a support message by its ID. 

8 """ 

9 def __init__(self, get_support_messages_port: GetSupportMessagesPort): 

10 self.get_support_messages_port = get_support_messages_port 

11 

12 def get_support_messages(self) -> list[SupportMessageModel]: 

13 """ 

14 Retrieves all support messages, ordered by status and creation date. 

15 Returns: 

16 list[SupportMessageModel]: A list of support messages. 

17 """ 

18 try: 

19 messages = self.get_support_messages_port.get_support_messages() 

20 

21 sorted_messages = sorted( 

22 messages, 

23 key=lambda msg: (msg.status, -msg.created_at.timestamp()) 

24 ) 

25 

26 return sorted_messages 

27 

28 except Exception as e: 

29 raise e