44from common .log_decorator import logging_decorator
55from common .redis_client import get_redis_client
66from common .s3_event import S3Event
7+ from common .service_return import ServiceReturn
78'''
89 Event Processor
910 The Business Logic for the Redis Sync Lambda Function.
@@ -15,18 +16,20 @@ def _process_all_records(s3_records: list) -> dict:
1516 error_count = 0
1617 file_keys = []
1718 for record in s3_records :
18- record_result = process_record (record )
19- file_keys .append (record_result [ "file_key" ] )
20- if record_result [ " status" ] == "error" :
19+ service_result = process_record (record )
20+ file_keys .append (service_result . value . get ( "file_key" ) )
21+ if service_result . status == 500 :
2122 error_count += 1
2223 if error_count > 0 :
2324 logger .error ("Processed %d records with %d errors" , record_count , error_count )
24- return {"status" : "error" , "message" : f"Processed { record_count } records with { error_count } errors" ,
25- "file_keys" : file_keys }
25+ return ServiceReturn ( value = {"status" : "error" , "message" : f"Processed { record_count } records with { error_count } errors" ,
26+ "file_keys" : file_keys })
2627 else :
2728 logger .info ("Successfully processed all %d records" , record_count )
28- return {"status" : "success" , "message" : f"Successfully processed { record_count } records" ,
29- "file_keys" : file_keys }
29+ return ServiceReturn (
30+ value = {"status" : "success" ,
31+ "message" : f"Successfully processed { record_count } records" ,
32+ "file_keys" : file_keys })
3033
3134
3235@logging_decorator (prefix = "redis_sync" , stream_name = STREAM_NAME )
@@ -44,7 +47,12 @@ def handler(event, _):
4447 logger .info (no_records )
4548 return {"status" : "success" , "message" : no_records }
4649 else :
47- return _process_all_records (s3_records )
50+ service_result = _process_all_records (s3_records )
51+ if service_result .is_success :
52+ return service_result .value
53+ else :
54+ return {"status" : "error" , "message" : service_result .value .get ("message" ),
55+ "file_keys" : service_result .value .get ("file_keys" , [])}
4856 else :
4957 logger .info (no_records )
5058 return {"status" : "success" , "message" : no_records }
0 commit comments