From 4a7e3de9a9ddb2b170e5a2ac4a6c7f0e7ef01486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Rafael=20Siqueira?= Date: Mon, 7 Jul 2025 17:52:15 -0300 Subject: [PATCH] fix expired --- http-api/app/routes/orders/__init__.py | 6 ++++-- order-events/app/events/stopgap/schedule_expired.py | 7 ++++++- order-events/template.yaml | 3 +-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/http-api/app/routes/orders/__init__.py b/http-api/app/routes/orders/__init__.py index 46078ac..b61ca6b 100644 --- a/http-api/app/routes/orders/__init__.py +++ b/http-api/app/routes/orders/__init__.py @@ -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.exceptions import ( NotFoundError, @@ -29,11 +31,11 @@ meili_client = Meilisearch(MEILISEARCH_HOST, MEILISEARCH_API_KEY) # noqa: F821 def get_orders(): tenant: Tenant = router.context['tenant'] 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') page = int(event.get_query_string_value('page', '1')) 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 != '*': filter_ = f'tenant = {tenant.id}' diff --git a/order-events/app/events/stopgap/schedule_expired.py b/order-events/app/events/stopgap/schedule_expired.py index 44ab185..7676384 100644 --- a/order-events/app/events/stopgap/schedule_expired.py +++ b/order-events/app/events/stopgap/schedule_expired.py @@ -6,7 +6,7 @@ from aws_lambda_powertools.utilities.data_classes import ( event_source, ) 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 ( DynamoDBPersistenceLayer, ) @@ -23,11 +23,16 @@ order_layer = DynamoDBPersistenceLayer(ORDER_TABLE, dynamodb_client) def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool: new_image = event.detail['new_image'] due_date = fromisoformat(new_image['due_date']) + now_ = now() + + if not due_date: + return False return order_layer.put_item( item={ 'id': new_image['id'], 'sk': 'schedules#set_as_expired', 'ttl': ttl(start_dt=due_date + timedelta(hours=24)), + 'created_at': now_, } ) diff --git a/order-events/template.yaml b/order-events/template.yaml index 5e70f19..a5c7499 100644 --- a/order-events/template.yaml +++ b/order-events/template.yaml @@ -153,7 +153,7 @@ Resources: Properties: Pattern: resources: [!Ref OrderTable] - detail-type: [INSERT] + detail-type: [EXPIRE] detail: new_image: sk: [schedules#set_as_expired] @@ -177,7 +177,6 @@ Resources: detail: new_image: sk: ["0"] - status: [PENDING] payment_method: [MANUAL] due_date: - exists: true