update batch

This commit is contained in:
2025-05-30 15:32:31 -03:00
parent efd962cdba
commit b048febbd5
24 changed files with 455 additions and 69 deletions

View File

@@ -46,7 +46,10 @@ def cancel(id: str, payload: Cancel):
set_status_as_canceled(
id,
lock_hash=payload.lock_hash,
author=user.model_dump(), # type: ignore
author={
'id': user.id,
'name': user.name,
},
course=payload.course, # type: ignore
vacancy_key=KeyPair.parse_obj(payload.vacancy),
persistence_layer=enrollment_layer,

View File

@@ -1,4 +1,5 @@
from datetime import datetime
from http import HTTPStatus
from aws_lambda_powertools.event_handler.api_gateway import Router
from layercake.batch import BatchProcessor
@@ -8,13 +9,15 @@ from layercake.dynamodb import (
)
from pydantic import BaseModel
from api_gateway import JSONResponse
from boto3clients import dynamodb_client
from config import (
ENROLLMENT_TABLE,
USER_TABLE,
)
from middlewares import Tenant, TenantMiddleware
from models import Course, User
from models import Course, Enrollment, User
from rules.enrollment import enroll
router = Router()
@@ -28,6 +31,7 @@ processor = BatchProcessor()
class Item(BaseModel):
user: User
course: Course
deduplication_window: dict = {}
schedule_date: datetime | None = None
@@ -49,16 +53,33 @@ def enroll_(payload: Payload):
with processor(payload.items, handler, context):
processor.process()
return {}
print(processor.exceptions)
return JSONResponse(
HTTPStatus.OK,
{
'successes': processor.successes,
'failures': processor.failures,
'exceptions': [str(exc) for exc in processor.exceptions],
},
)
def handler(record: Item, context: dict):
tenant: Tenant = context['tenant']
# enroll(
# enrollment=Enrollment(user=[])
# tenant={
# 'id': str(tenant.id),
# 'name': tenant.name,
# },
# persistence_layer=enrollment_layer,
# )
enrollment = Enrollment(
user=record.user,
course=record.course,
)
enroll(
enrollment=enrollment,
tenant={
'id': str(tenant.id),
'name': tenant.name,
},
deduplication_window=record.deduplication_window, # type: ignore
persistence_layer=enrollment_layer,
)
return enrollment