diff --git a/http-api/app/routes/enrollments/__init__.py b/http-api/app/routes/enrollments/__init__.py index b64564d..208d672 100644 --- a/http-api/app/routes/enrollments/__init__.py +++ b/http-api/app/routes/enrollments/__init__.py @@ -3,6 +3,7 @@ import urllib.parse as parse from aws_lambda_powertools.event_handler.api_gateway import Router from layercake.dynamodb import ( DynamoDBPersistenceLayer, + KeyPair, SortKey, TransactKey, ) @@ -68,7 +69,7 @@ def get_enrollments(): @router.get('/', compress=True, tags=['Enrollment']) def get_enrollment(id: str): - return enrollment_layer.collection.get_items( + record = enrollment_layer.collection.get_items( TransactKey(id) + SortKey('0') + SortKey('STARTED', rename_key='started_at', path_spec='started_at') @@ -82,3 +83,8 @@ def get_enrollment(id: str): + SortKey('author') + SortKey('tenant') ) + + events = enrollment_layer.collection.query(KeyPair(id, 'SCHEDULE#')) + record['events'] = events.get('items', []) + + return record diff --git a/http-api/seeds/test-enrollments.jsonl b/http-api/seeds/test-enrollments.jsonl index 8b38d3c..39112e8 100644 --- a/http-api/seeds/test-enrollments.jsonl +++ b/http-api/seeds/test-enrollments.jsonl @@ -1,4 +1,4 @@ {"id": "f58c8fa1-d14c-4c17-955b-b47b82963f40", "sk": "0", "issued_cert": { "s3_uri": "s3://saladeaula.digital/issuedcerts/f58c8fa1-d14c-4c17-955b-b47b82963f40.pdf", "issued_at": "2025-09-02T12:57:33.066023-03:00"}, "updated_at": "2025-09-01T14:59:07.999536-03:00", "subscription_covered": true, "created_at": "2025-09-01T14:59:04.758540-03:00", "course": { "name": "CIPA Grau de Risco 1", "time_in_days": 360, "id": "3c27ea9c-9464-46a1-9717-8c1441793186" }, "tenant_id": "cJtK9SsnJhKPyxESe7g3DG", "status": "COMPLETED", "progress": 100, "score": 79, "user": {"name": "Sérgio Rafael de Siqueira", "cpf": "07879819908", "id": "5OxmMjL-ujoR5IMGegQz", "email": "sergio@somosbeta.com.br"}} {"id": "f58c8fa1-d14c-4c17-955b-b47b82963f40", "sk": "COMPLETED", "completed_at": "2025-08-31T21:59:10.842467-03:00"} {"id": "f58c8fa1-d14c-4c17-955b-b47b82963f40", "sk": "SCHEDULE#REMINDER_ACCESS_PERIOD_BEFORE_30_DAYS", "created_at": "2025-09-01T15:00:09.589766-03:00", "course": "CIPA Grau de Risco 1", "ttl": 1785261609, "email": "sergio@somosbeta.com.br", "name": "Sérgio Rafael de Siqueira"} -{"id": "f58c8fa1-d14c-4c17-955b-b47b82963f40", "sk": "SCHEDULE#REMINDER_NO_ACCESS_AFTER_3_DAYS", "created_at": "2025-09-01T15:00:09.589766-03:00", "course": "CIPA Grau de Risco 1", "ttl": 1757008809, "email": "sergio@somosbeta.com.br", "name": "Sérgio Rafael de Siqueira"} \ No newline at end of file +{"id": "f58c8fa1-d14c-4c17-955b-b47b82963f40", "sk": "SCHEDULE#REMINDER_NO_ACCESS_AFTER_3_DAYS#EXECUTED", "created_at": "2025-09-04T15:00:09.589766-03:00"} \ No newline at end of file