fix expired

This commit is contained in:
2025-07-07 17:52:15 -03:00
parent ea6fb1cbb0
commit 4a7e3de9a9
3 changed files with 11 additions and 5 deletions

View File

@@ -1,3 +1,5 @@
import urllib.parse as parse
from aws_lambda_powertools.event_handler.api_gateway import Router from aws_lambda_powertools.event_handler.api_gateway import Router
from aws_lambda_powertools.event_handler.exceptions import ( from aws_lambda_powertools.event_handler.exceptions import (
NotFoundError, NotFoundError,
@@ -29,11 +31,11 @@ meili_client = Meilisearch(MEILISEARCH_HOST, MEILISEARCH_API_KEY) # noqa: F821
def get_orders(): def get_orders():
tenant: Tenant = router.context['tenant'] tenant: Tenant = router.context['tenant']
event = router.current_event event = router.current_event
query = event.get_query_string_value('query', '') query = parse.unquote(event.get_query_string_value('q', ''))
sort = event.get_query_string_value('sort', 'create_date:desc') sort = event.get_query_string_value('sort', 'create_date:desc')
page = int(event.get_query_string_value('page', '1')) page = int(event.get_query_string_value('page', '1'))
hits_per_page = int(event.get_query_string_value('hitsPerPage', '25')) hits_per_page = int(event.get_query_string_value('hitsPerPage', '25'))
filter_ = None filter_ = parse.unquote(event.get_query_string_value('filter', ''))
if tenant.id != '*': if tenant.id != '*':
filter_ = f'tenant = {tenant.id}' filter_ = f'tenant = {tenant.id}'

View File

@@ -6,7 +6,7 @@ from aws_lambda_powertools.utilities.data_classes import (
event_source, event_source,
) )
from aws_lambda_powertools.utilities.typing import LambdaContext from aws_lambda_powertools.utilities.typing import LambdaContext
from layercake.dateutils import fromisoformat, ttl from layercake.dateutils import fromisoformat, now, ttl
from layercake.dynamodb import ( from layercake.dynamodb import (
DynamoDBPersistenceLayer, DynamoDBPersistenceLayer,
) )
@@ -23,11 +23,16 @@ order_layer = DynamoDBPersistenceLayer(ORDER_TABLE, dynamodb_client)
def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool: def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool:
new_image = event.detail['new_image'] new_image = event.detail['new_image']
due_date = fromisoformat(new_image['due_date']) due_date = fromisoformat(new_image['due_date'])
now_ = now()
if not due_date:
return False
return order_layer.put_item( return order_layer.put_item(
item={ item={
'id': new_image['id'], 'id': new_image['id'],
'sk': 'schedules#set_as_expired', 'sk': 'schedules#set_as_expired',
'ttl': ttl(start_dt=due_date + timedelta(hours=24)), 'ttl': ttl(start_dt=due_date + timedelta(hours=24)),
'created_at': now_,
} }
) )

View File

@@ -153,7 +153,7 @@ Resources:
Properties: Properties:
Pattern: Pattern:
resources: [!Ref OrderTable] resources: [!Ref OrderTable]
detail-type: [INSERT] detail-type: [EXPIRE]
detail: detail:
new_image: new_image:
sk: [schedules#set_as_expired] sk: [schedules#set_as_expired]
@@ -177,7 +177,6 @@ Resources:
detail: detail:
new_image: new_image:
sk: ["0"] sk: ["0"]
status: [PENDING]
payment_method: [MANUAL] payment_method: [MANUAL]
due_date: due_date:
- exists: true - exists: true