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.
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user