From 36c34d32087e586b8ecb0390dae7beefba8ff95d Mon Sep 17 00:00:00 2001 From: vitor-aignosi Date: Thu, 14 Aug 2025 09:26:10 -0300 Subject: [PATCH] SIENTIAPDE-1184 refactor: consolidate report handling in Formatters class - Introduced a new method, manage_and_send_report, to streamline success and error report generation. - Improved code readability by reducing duplication in report handling logic. - Maintained existing functionality while enhancing the structure of report messages. --- orchestrator/activities/formatters.py | 55 ++++++++++++++++----------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/orchestrator/activities/formatters.py b/orchestrator/activities/formatters.py index a3122fc..e0452b0 100644 --- a/orchestrator/activities/formatters.py +++ b/orchestrator/activities/formatters.py @@ -360,6 +360,31 @@ class Formatters(BaseActivity): return success_keys, error_keys + def manage_and_send_report(self, metadata: dict[str, Any], success_keys: list[str], error_keys: dict[str, Any], schedule_type: str, schedule_data: dict[str, Any]): + if len(success_keys) > 0: + self.send_success_report( + metadata=metadata, + message=f"Successfully {schedule_type}: \n {', '.join(success_keys)}", + notification_id=schedule_data['id'], + attachment=schedule_data['items'] + ) + + if len(error_keys) > 0: + attachment = [] + for key, value in error_keys.items(): + if value['attachment'] is not None: + attachment.append( + f"{key}:\n{value['message']}\n{value['attachment']}") + else: + attachment.append(f"{key}:\n{value['message']}") + + self.send_error_report( + metadata=metadata, + message=f"Fails on {schedule_type}: \n {', '.join(error_keys)}", + notification_id=f"{schedule_data['id']}_ERROR", + attachment=topic_separator.join(attachment) + ) + @activity.defn(name="report_schedule_orchestration") async def report_schedule_orchestration(self, input_data: dict[str, Any]) -> None: @@ -401,29 +426,13 @@ class Formatters(BaseActivity): success_keys, error_keys = self.parse_report_schedule( schedule_data['items']) - if len(success_keys) > 0: - self.send_success_report( - metadata=metadata, - message=f"Successfully {schedule_type}: \n {', '.join(success_keys)}", - notification_id=schedule_data['id'], - attachment=schedule_data['items'] - ) - - if len(error_keys) > 0: - attachment = [] - for key, value in error_keys.items(): - if value['attachment'] is not None: - attachment.append( - f"{key}:\n{value['message']}\n{value['attachment']}") - else: - attachment.append(f"{key}:\n{value['message']}") - - self.send_error_report( - metadata=metadata, - message=f"Fails on {schedule_type}: \n {', '.join(error_keys)}", - notification_id=f"{schedule_data['id']}_ERROR", - attachment=topic_separator.join(attachment) - ) + self.manage_and_send_report( + metadata=metadata, + success_keys=success_keys, + error_keys=error_keys, + schedule_type=schedule_type, + schedule_data=schedule_data + ) @activity.defn(name="report_slot_orchestration") async def report_slot_orchestration(self,