add enrollments to order
This commit is contained in:
@@ -118,6 +118,8 @@ def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool:
|
||||
org_id=org_id,
|
||||
)
|
||||
|
||||
logger.debug('Some enrollments failed', failed=failed)
|
||||
|
||||
with dyn.transact_writer() as transact:
|
||||
for x in failed:
|
||||
reason = _friendly_reason(x.cause['type']) # type: ignore
|
||||
@@ -163,7 +165,7 @@ def _release_seats(
|
||||
) -> None:
|
||||
now_ = now()
|
||||
|
||||
with dyn.transact_writer(table_name=ORDER_TABLE) as transact:
|
||||
with dyn.transact_writer(table_name=ENROLLMENT_TABLE) as transact:
|
||||
for course in courses:
|
||||
transact.put(
|
||||
item={
|
||||
@@ -172,7 +174,6 @@ def _release_seats(
|
||||
'course': course.model_dump(),
|
||||
'created_at': now_,
|
||||
},
|
||||
table_name=ORDER_TABLE,
|
||||
)
|
||||
|
||||
|
||||
@@ -263,6 +264,26 @@ def _enroll_now(enrollment: Enrollment, context: Context) -> None:
|
||||
'seat': {'order_id': order_id},
|
||||
}
|
||||
)
|
||||
# Relationships between this enrollment and its related entities
|
||||
transact.put(
|
||||
item={
|
||||
'id': order_id,
|
||||
'sk': f'LINKED_ENTITIES#CHILD#ENROLLMENT#{enrollment.id}',
|
||||
'created_at': now_,
|
||||
},
|
||||
cond_expr='attribute_not_exists(sk)',
|
||||
table_name=ORDER_TABLE,
|
||||
)
|
||||
# Child knows the parent
|
||||
transact.put(
|
||||
item={
|
||||
'id': enrollment.id,
|
||||
'sk': f'LINKED_ENTITIES#PARENT#ORDER#{order_id}',
|
||||
'created_at': now_,
|
||||
},
|
||||
cond_expr='attribute_not_exists(sk)',
|
||||
)
|
||||
|
||||
transact.update(
|
||||
key=KeyPair(order_id, f'ENROLLMENT#{enrollment.id}'),
|
||||
update_expr='SET #status = :executed, \
|
||||
|
||||
@@ -67,7 +67,7 @@ Resources:
|
||||
LoggingConfig:
|
||||
LogGroup: !Ref HttpLog
|
||||
Policies:
|
||||
- DynamoDBWritePolicy:
|
||||
- DynamoDBCrudPolicy:
|
||||
TableName: !Ref OrderTable
|
||||
Events:
|
||||
Post:
|
||||
|
||||
Reference in New Issue
Block a user