Skip to content

Commit 3893008

Browse files
committed
smells
1 parent 79afd23 commit 3893008

File tree

1 file changed

+27
-22
lines changed

1 file changed

+27
-22
lines changed

lambdas/redis_sync/src/redis_sync.py

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,39 +9,44 @@
99
This module processes S3 events and iterates through each record to process them individually.'''
1010

1111

12+
def _process_all_records(s3_records: list) -> dict:
13+
record_count = len(s3_records)
14+
error_count = 0
15+
file_keys = []
16+
for record in s3_records:
17+
record_result = process_record(record)
18+
file_keys.append(record_result["file_key"])
19+
if record_result["status"] == "error":
20+
error_count += 1
21+
if error_count > 0:
22+
logger.error("Processed %d records with %d errors", record_count, error_count)
23+
return {"status": "error", "message": f"Processed {record_count} records with {error_count} errors",
24+
"file_keys": file_keys}
25+
else:
26+
logger.info("Successfully processed all %d records", record_count)
27+
return {"status": "success", "message": f"Successfully processed {record_count} records",
28+
"file_keys": file_keys}
29+
30+
1231
@logging_decorator(prefix="redis_sync", stream_name=STREAM_NAME)
1332
def handler(event, _):
1433

1534
try:
35+
no_records = "No records found in event"
1636
# check if the event requires a read, ie {"read": "my-hashmap"}
1737
if "read" in event:
1838
return read_event(redis_client, event, logger)
1939
elif "Records" in event:
2040
logger.info("Processing S3 event with %d records", len(event.get('Records', [])))
21-
s3_event = S3Event(event)
22-
record_count = len(s3_event.get_s3_records())
23-
if record_count == 0:
24-
logger.info("No records found in event")
25-
return {"status": "success", "message": "No records found in event"}
41+
s3_records = S3Event(event).get_s3_records()
42+
if not s3_records:
43+
logger.info(no_records)
44+
return {"status": "success", "message": no_records}
2645
else:
27-
error_count = 0
28-
file_keys = []
29-
for record in s3_event.get_s3_records():
30-
record_result = process_record(record)
31-
file_keys.append(record_result["file_key"])
32-
if record_result["status"] == "error":
33-
error_count += 1
34-
if error_count > 0:
35-
logger.error("Processed %d records with %d errors", record_count, error_count)
36-
return {"status": "error", "message": f"Processed {record_count} records with {error_count} errors",
37-
"file_keys": file_keys}
38-
else:
39-
logger.info("Successfully processed all %d records", record_count)
40-
return {"status": "success", "message": f"Successfully processed {record_count} records",
41-
"file_keys": file_keys}
46+
return _process_all_records(s3_records)
4247
else:
43-
logger.info("No records found in event")
44-
return {"status": "success", "message": "No records found in event"}
48+
logger.info(no_records)
49+
return {"status": "success", "message": no_records}
4550

4651
except Exception:
4752
logger.exception("Error processing S3 event")

0 commit comments

Comments
 (0)