Coverage for src/app/adapters/support_message_postgres_adapter.py: 40%

35 statements  

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

1from repositories.support_message_postgres_repository import SupportMessagePostgresRepository 

2from models.support_message_model import SupportMessageModel 

3from ports.get_support_message_port import GetSupportMessagePort 

4from ports.get_support_messages_port import GetSupportMessagesPort 

5from ports.save_support_message_port import SaveSupportMessagePort 

6from ports.mark_done_support_messages_port import MarkDoneSupportMessagesPort 

7 

8from entities.support_message_entity import SupportMessageEntity 

9 

10class SupportMessagePostgresAdapter(GetSupportMessagePort, GetSupportMessagesPort, SaveSupportMessagePort, MarkDoneSupportMessagesPort): 

11 

12 def __init__(self, support_message_postgres_repository: SupportMessagePostgresRepository): 

13 self.support_message_postgres_repository = support_message_postgres_repository 

14 

15 def get_support_message(self, message: SupportMessageModel) -> SupportMessageModel: 

16 """ 

17 Retrieves a support message. 

18 Args: 

19 message (SupportMessageModel): The support message model containing the details. 

20 Returns: 

21 SupportMessageModel: The retrieved support message. 

22 """ 

23 

24 try: 

25 support_message_entity = SupportMessageEntity( 

26 id=message.get_id(), 

27 user_id=message.get_user_id(), 

28 description=message.get_description(), 

29 status=message.get_status(), 

30 subject=message.get_subject(), 

31 created_at=message.get_created_at() 

32 ) 

33 

34 support_message = self.support_message_postgres_repository.get_support_message(support_message_entity) 

35 

36 return SupportMessageModel( 

37 id=support_message.get_id(), 

38 user_id=support_message.get_user_id(), 

39 description=support_message.get_description(), 

40 status=support_message.get_status(), 

41 subject=support_message.get_subject(), 

42 created_at=support_message.get_created_at() 

43 ) 

44 

45 except Exception as e: 

46 raise e 

47 

48 

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

50 """ 

51 Retrieves all support messages. 

52 Returns: 

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

54 """ 

55 try: 

56 support_messages = self.support_message_postgres_repository.get_support_messages() 

57 return [ 

58 SupportMessageModel( 

59 id=support_message.id, 

60 user_id=support_message.user_id, 

61 user_email=support_message.user_email, 

62 description=support_message.description, 

63 status=support_message.status, 

64 subject=support_message.subject, 

65 created_at=support_message.created_at 

66 ) 

67 for support_message in support_messages 

68 ] 

69 

70 except Exception as e: 

71 raise e 

72 

73 def save_support_message(self, support_message: SupportMessageModel)-> int: 

74 """ 

75 Save a support message. 

76 Args: 

77 support_message (SupportMessageModel): The support message to save. 

78 Returns: 

79 int: The ID of the saved support message. 

80 """ 

81 try: 

82 

83 support_message_entity = SupportMessageEntity( 

84 id=support_message.get_id(), 

85 user_id=support_message.get_user_id(), 

86 description=support_message.get_description(), 

87 status=support_message.get_status(), 

88 subject=support_message.get_subject(), 

89 created_at=support_message.get_created_at() 

90 ) 

91 

92 return self.support_message_postgres_repository.save_support_message(support_message_entity) 

93 

94 

95 except Exception as e: 

96 raise e 

97 

98 def mark_done_support_messages(self, support_message_model: SupportMessageModel)-> int: 

99 """ 

100 Mark a support message as done. 

101 Args: 

102 message (SupportMessageModel): The support message to mark as done. 

103 """ 

104 try: 

105 support_message_entity = SupportMessageEntity( 

106 id=support_message_model.get_id(), 

107 status=support_message_model.get_status() 

108 ) 

109 

110 return self.support_message_postgres_repository.mark_done_support_messages(support_message_entity) 

111 

112 except Exception as e: 

113 raise e