add purge to canceled and failed enrollment
This commit is contained in:
@@ -30,6 +30,7 @@ def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool:
|
||||
offset_days = old_image.get('dedup_window_offset_days')
|
||||
billing_day = old_image.get('subscription_billing_day')
|
||||
created_by = old_image.get('created_by')
|
||||
seat = old_image.get('seat')
|
||||
enrollment = Enrollment(
|
||||
course=old_image['course'],
|
||||
user=old_image['user'],
|
||||
@@ -53,6 +54,7 @@ def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool:
|
||||
subscription=subscription,
|
||||
cancel_policy=bool(subscription),
|
||||
created_by=created_by,
|
||||
seat=seat,
|
||||
scheduled_at=datetime.fromisoformat(old_image['scheduled_at']),
|
||||
# Transfer the deduplication window if it exists
|
||||
deduplication_window={'offset_days': offset_days} if offset_days else None,
|
||||
|
||||
41
enrollments-events/app/events/purge_reminders.py
Normal file
41
enrollments-events/app/events/purge_reminders.py
Normal file
@@ -0,0 +1,41 @@
|
||||
from aws_lambda_powertools import Logger
|
||||
from aws_lambda_powertools.utilities.data_classes import (
|
||||
EventBridgeEvent,
|
||||
event_source,
|
||||
)
|
||||
from aws_lambda_powertools.utilities.typing import LambdaContext
|
||||
from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair
|
||||
from layercake.strutils import md5_hash
|
||||
|
||||
from boto3clients import dynamodb_client
|
||||
from config import ENROLLMENT_TABLE
|
||||
|
||||
logger = Logger(__name__)
|
||||
dyn = DynamoDBPersistenceLayer(ENROLLMENT_TABLE, dynamodb_client)
|
||||
|
||||
|
||||
@event_source(data_class=EventBridgeEvent)
|
||||
@logger.inject_lambda_context
|
||||
def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool:
|
||||
new_image = event.detail['new_image']
|
||||
enrollment_id = new_image['id']
|
||||
user_id = new_image['user']['id']
|
||||
course_id = new_image['course']['id']
|
||||
lock_hash = md5_hash(f'{user_id}{course_id}')
|
||||
|
||||
with dyn.transact_writer() as transact:
|
||||
transact.delete(
|
||||
key=KeyPair(enrollment_id, 'SCHEDULE#REMINDER_NO_ACCESS_AFTER_3_DAYS')
|
||||
)
|
||||
transact.delete(
|
||||
key=KeyPair(enrollment_id, 'SCHEDULE#REMINDER_NO_ACTIVITY_AFTER_7_DAYS')
|
||||
)
|
||||
transact.delete(
|
||||
key=KeyPair(enrollment_id, 'SCHEDULE#REMINDER_ACCESS_PERIOD_BEFORE_30_DAYS')
|
||||
)
|
||||
transact.delete(key=KeyPair(enrollment_id, 'CANCEL_POLICY'))
|
||||
# Remove locks related to this enrollment
|
||||
transact.delete(key=KeyPair(enrollment_id, 'LOCK'))
|
||||
transact.delete(key=KeyPair('LOCK', lock_hash))
|
||||
|
||||
return True
|
||||
Reference in New Issue
Block a user