add set as expired event to manual payment
This commit is contained in:
@@ -20,6 +20,7 @@ order_layer = DynamoDBPersistenceLayer(ORDER_TABLE, dynamodb_client)
|
||||
@event_source(data_class=EventBridgeEvent)
|
||||
@logger.inject_lambda_context
|
||||
def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool:
|
||||
"""Set the order status to `EXPIRED` 24 hours after it becomes overdue."""
|
||||
new_image = event.detail['new_image']
|
||||
now_ = now()
|
||||
|
||||
|
||||
33
order-events/app/events/stopgap/schedule_expired.py
Normal file
33
order-events/app/events/stopgap/schedule_expired.py
Normal file
@@ -0,0 +1,33 @@
|
||||
from datetime import timedelta
|
||||
|
||||
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.dateutils import fromisoformat, ttl
|
||||
from layercake.dynamodb import (
|
||||
DynamoDBPersistenceLayer,
|
||||
)
|
||||
|
||||
from boto3clients import dynamodb_client
|
||||
from config import ORDER_TABLE
|
||||
|
||||
logger = Logger(__name__)
|
||||
order_layer = DynamoDBPersistenceLayer(ORDER_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']
|
||||
due_date = fromisoformat(new_image['due_date'])
|
||||
|
||||
return order_layer.put_item(
|
||||
item={
|
||||
'id': new_image['id'],
|
||||
'sk': 'schedules#set_as_expired',
|
||||
'ttl': ttl(start_dt=due_date + timedelta(hours=24)),
|
||||
}
|
||||
)
|
||||
Reference in New Issue
Block a user