Files
2025-07-18 00:14:45 -03:00

49 lines
1.2 KiB
Python

from layercake.dateutils import now
from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair
from models import Course
def create_course(
course: Course,
/,
tenant_id: str,
persistence_layer: DynamoDBPersistenceLayer,
):
now_ = now()
return persistence_layer.put_item(
item={
'sk': '0',
'tenant_id': tenant_id,
'created_at': now_,
**course.model_dump(),
}
)
def update_course(
id: str,
course: Course,
/,
persistence_layer: DynamoDBPersistenceLayer,
):
now_ = now()
with persistence_layer.transact_writer() as transact:
transact.update(
key=KeyPair(id, '0'),
update_expr='SET #name = :name, access_period = :access_period, \
cert = :cert, updated_at = :updated_at',
expr_attr_names={
'#name': 'name',
},
expr_attr_values={
':name': course.name,
':cert': course.cert.model_dump() if course.cert else None,
':access_period': course.access_period,
':updated_at': now_,
},
cond_expr='attribute_exists(sk)',
)
return True