Phase 5: Replace cross-domain writes with glue services, emit events
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 41s
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 41s
- checkout.py: use claim_entries_for_order(), emit order.created - check_sumup_status.py: use confirm_entries_for_order(), emit order.paid - global_routes.py: use get_entries_for_order() instead of relationship - order.py: remove calendar_entries relationship - api.py: remove /adopt endpoint (replaced by event-driven adoption) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from shared.browser.app.payments.sumup import get_checkout as sumup_get_checkout
|
||||
from sqlalchemy import update
|
||||
from events.models.calendars import CalendarEntry
|
||||
from shared.events import emit_event
|
||||
from glue.services.order_lifecycle import confirm_entries_for_order
|
||||
|
||||
|
||||
async def check_sumup_status(session, order):
|
||||
@@ -13,21 +13,13 @@ async def check_sumup_status(session, order):
|
||||
if sumup_status == "PAID":
|
||||
if order.status != "paid":
|
||||
order.status = "paid"
|
||||
filters = [
|
||||
CalendarEntry.deleted_at.is_(None),
|
||||
CalendarEntry.state == "ordered",
|
||||
CalendarEntry.order_id==order.id,
|
||||
]
|
||||
if order.user_id is not None:
|
||||
filters.append(CalendarEntry.user_id == order.user_id)
|
||||
elif order.session_id is not None:
|
||||
filters.append(CalendarEntry.session_id == order.session_id)
|
||||
|
||||
await session.execute(
|
||||
update(CalendarEntry)
|
||||
.where(*filters)
|
||||
.values(state="provisional")
|
||||
await confirm_entries_for_order(
|
||||
session, order.id, order.user_id, order.session_id
|
||||
)
|
||||
await emit_event(session, "order.paid", "order", order.id, {
|
||||
"order_id": order.id,
|
||||
"user_id": order.user_id,
|
||||
})
|
||||
elif sumup_status == "FAILED":
|
||||
order.status = "failed"
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user