add enrollments to order

This commit is contained in:
2026-01-25 20:47:21 -03:00
parent 3719842ae9
commit 0d1258f666
11 changed files with 303 additions and 64 deletions

View File

@@ -14,7 +14,7 @@ from pydantic import UUID4
from api_gateway import JSONResponse
from boto3clients import dynamodb_client
from config import ORDER_TABLE
from config import ENROLLMENT_TABLE, ORDER_TABLE
from exceptions import ConflictError, OrderConflictError, OrderNotFoundError
from middlewares.authentication_middleware import User as Authenticated
@@ -48,14 +48,24 @@ def get_order(order_id: str):
if not order:
raise OrderNotFoundError('Order not found')
org_id = order.get('org_id')
attempts = dyn.collection.query(KeyPair(order_id, 'TRANSACTION#ATTEMPT#'))
enrollments = dyn.collection.query(KeyPair(order_id, 'ENROLLMENT#'))
seats = (
dyn.collection.query(
key=KeyPair(f'SEAT#ORG#{org_id}', f'ORDER#{order_id}'),
table_name=ENROLLMENT_TABLE,
)
if org_id
else {'items': []}
)
return (
order
| {
'payment_attempts': attempts['items'],
'enrollments': enrollments['items'],
'seats': seats['items'],
}
# Post-migration (orders): remove the following lines
| ({'created_at': order['create_date']} if 'create_date' in order else {})

View File

@@ -356,5 +356,7 @@ def _get_settings(id: str) -> Settings:
if 'due_days' not in r:
r['due_days'] = DUE_DAYS
else:
r['due_days'] = int(r['due_days'])
return cast(Settings, r)