fix expired
This commit is contained in:
@@ -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}'
|
||||||
|
|||||||
@@ -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_,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user