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
« 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
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
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()
21 sorted_messages = sorted(
22 messages,
23 key=lambda msg: (msg.status, -msg.created_at.timestamp())
24 )
26 return sorted_messages
28 except Exception as e:
29 raise e