Coverage for src/app/controllers/get_dashboard_metrics_controller.py: 58%

12 statements  

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

1from usecases.get_dashboard_metrics_useCase import GetDashboardMetricsUseCase 

2from dto.metrics_dto import MetricsDTO 

3from models.message_model import MessageModel 

4 

5class GetDashboardMetricsController: 

6 

7 def __init__(self, get_dashboard_metrics_use_case: GetDashboardMetricsUseCase): 

8 self.get_dashboard_metrics_use_case = get_dashboard_metrics_use_case 

9 

10 def get_dashboard_metrics(self) -> MetricsDTO: 

11 """ 

12 Get dashboard metrics. 

13 Returns: 

14 MetricsDTO: An object containing the dashboard metrics. 

15 """ 

16 try: 

17 metrics_result = self.get_dashboard_metrics_use_case.get_dashboard_metrics() 

18 

19 return MetricsDTO( 

20 total_likes=metrics_result.get_total_likes(), 

21 total_dislikes=metrics_result.get_total_dislikes(), 

22 total_messages=metrics_result.get_total_messages(), 

23 positive_rating=metrics_result.get_positive_rating() 

24 ) 

25 

26 except Exception as e: 

27 raise e