diff --git a/enrollments-events/app/events/emails/reminder_no_access_3_days.py b/enrollments-events/app/events/emails/reminder_no_access_3_days.py index 0628e22..cd041de 100644 --- a/enrollments-events/app/events/emails/reminder_no_access_3_days.py +++ b/enrollments-events/app/events/emails/reminder_no_access_3_days.py @@ -5,7 +5,7 @@ from aws_lambda_powertools.utilities.data_classes import ( ) from aws_lambda_powertools.utilities.typing import LambdaContext from layercake.dateutils import now -from layercake.dynamodb import ComposeKey, DynamoDBPersistenceLayer, KeyPair +from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair from layercake.strutils import first_word, truncate_str from boto3clients import dynamodb_client, sesv2_client @@ -39,6 +39,7 @@ def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool: # Post-migration: Remove the following lines if 'email' not in old_image: + # If email is missing, use enrollment email data = enrollment_layer.get_item(KeyPair(old_image['id'], '0')) old_image['name'] = data['user']['name'] old_image['email'] = data['user']['email'] @@ -72,9 +73,9 @@ def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool: enrollment_layer.put_item( item={ 'id': old_image['id'], - 'sk': ComposeKey('failed', 'schedules#reminder_no_access_3_days'), + 'sk': 'schedules#reminder_no_access_3_days#failed', # Post-migration: Uncomment the following line - # 'sk': ComposeKey('failed', old_image['sk']), + # 'sk': f'{old_image["sk"]}#failed', 'created_at': now_, } ) @@ -84,9 +85,9 @@ def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool: enrollment_layer.put_item( item={ 'id': old_image['id'], - 'sk': ComposeKey('completed', 'schedules#reminder_no_access_3_days'), + 'sk': 'schedules#reminder_no_access_3_days#executed', # Post-migration: Uncomment the following line - # 'sk': ComposeKey('completed', old_image['sk']), + # 'sk': f'{old_image["sk"]}#executed', 'created_at': now_, } ) diff --git a/enrollments-events/template.yaml b/enrollments-events/template.yaml index d246c56..05dc0f3 100644 --- a/enrollments-events/template.yaml +++ b/enrollments-events/template.yaml @@ -62,6 +62,30 @@ Resources: new_image: sk: ["0"] + EventAllocateSlotsFunction: + Type: AWS::Serverless::Function + Properties: + Handler: events.allocate_slots.lambda_handler + LoggingConfig: + LogGroup: !Ref EventLog + Policies: + - DynamoDBCrudPolicy: + TableName: !Ref OrderTable + - DynamoDBCrudPolicy: + TableName: !Ref EnrollmentTable + Events: + DynamoDBEvent: + Type: EventBridgeRule + Properties: + Pattern: + resources: [!Ref OrderTable] + detail-type: [INSERT] + detail: + new_image: + sk: [slots] + mode: [BATCH] + status: [PENDING] + EventReminderNoAccess3DaysFunction: Type: AWS::Serverless::Function Properties: