mirror of
https://github.com/Sea-Haven-Industries/meal-order-manager.git
synced 2026-10-06 21:41:58 +00:00
25 lines
752 B
Python
25 lines
752 B
Python
|
|
from shared.db import current_week, get_form_status, set_form_status
|
||
|
|
|
||
|
|
|
||
|
|
def _dispatch_job(payload: dict) -> None:
|
||
|
|
from server.jobs import enqueue_job
|
||
|
|
|
||
|
|
enqueue_job(payload)
|
||
|
|
|
||
|
|
|
||
|
|
def lambda_handler(event, context):
|
||
|
|
# Scheduler fires Thursday 23:59 America/New_York. Do not skip on wall
|
||
|
|
# clock: a delayed SQS delivery must still close the week. already-closed
|
||
|
|
# is the idempotency gate for redelivery.
|
||
|
|
week = event.get("week", current_week())
|
||
|
|
|
||
|
|
status = get_form_status(week)
|
||
|
|
if status == "closed":
|
||
|
|
return {"status": "already_closed", "week": week}
|
||
|
|
|
||
|
|
set_form_status(week, "closed")
|
||
|
|
|
||
|
|
_dispatch_job({"event": "aggregate", "week": week})
|
||
|
|
|
||
|
|
return {"status": "closed", "week": week, "aggregate_triggered": True}
|