From cfffcb20702c7432cb59c915ece1d444e51534f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Rafael=20Siqueira?= Date: Mon, 14 Jul 2025 12:24:22 -0300 Subject: [PATCH] fix --- streams-events/app/events/docs_into_eventbus.py | 11 +++++++---- streams-events/app/meili.py | 9 +-------- streams-events/app/utils.py | 8 ++++++++ streams-events/template.yaml | 2 +- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/streams-events/app/events/docs_into_eventbus.py b/streams-events/app/events/docs_into_eventbus.py index 1d96b57..3c7f7a3 100644 --- a/streams-events/app/events/docs_into_eventbus.py +++ b/streams-events/app/events/docs_into_eventbus.py @@ -3,7 +3,6 @@ from typing import TYPE_CHECKING import boto3 from aws_lambda_powertools import Logger, Tracer -from aws_lambda_powertools.shared.json_encoder import Encoder from aws_lambda_powertools.utilities.batch import ( BatchProcessor, EventType, @@ -15,7 +14,7 @@ from aws_lambda_powertools.utilities.data_classes.dynamo_db_stream_event import ) from aws_lambda_powertools.utilities.typing import LambdaContext from layercake.dateutils import now, ttl -from utils import diff, table_from_arn +from utils import JSONEncoder, diff, table_from_arn if TYPE_CHECKING: from mypy_boto3_events.client import EventBridgeClient @@ -39,7 +38,11 @@ def record_handler(record: DynamoDBRecord): now_ = now() # Should be EXPIRE if event is REMOVE and TTL has elapsed - if record.event_name is DynamoDBRecordEventName.REMOVE and ttl() >= record_ttl: + if ( + record.event_name is DynamoDBRecordEventName.REMOVE + and record_ttl + and ttl() >= record_ttl + ): detail_type = 'EXPIRE' detail = { @@ -55,7 +58,7 @@ def record_handler(record: DynamoDBRecord): 'Source': record.event_source, # type: ignore 'DetailType': detail_type, 'Resources': [table_name], - 'Detail': json.dumps(detail, cls=Encoder), + 'Detail': json.dumps(detail, cls=JSONEncoder), 'Time': now_, } ] diff --git a/streams-events/app/meili.py b/streams-events/app/meili.py index d5926d1..a68d5bc 100644 --- a/streams-events/app/meili.py +++ b/streams-events/app/meili.py @@ -1,10 +1,10 @@ from typing import Self -from aws_lambda_powertools.shared.json_encoder import Encoder from aws_lambda_powertools.utilities.data_classes.dynamo_db_stream_event import ( DynamoDBRecordEventName, ) from meilisearch import Client +from utils import JSONEncoder class Op: @@ -53,10 +53,3 @@ class Op: self.op[index][op] = [] return self.op[index][op].append(data) - - -class JSONEncoder(Encoder): - def default(self, obj): - if isinstance(obj, set): - return list(obj) - return super(__class__, self).default(obj) diff --git a/streams-events/app/utils.py b/streams-events/app/utils.py index d16a123..7292454 100644 --- a/streams-events/app/utils.py +++ b/streams-events/app/utils.py @@ -1,5 +1,6 @@ import dictdiffer from arnparse import arnparse +from aws_lambda_powertools.shared.json_encoder import Encoder def table_from_arn(arn: str) -> str: @@ -17,3 +18,10 @@ def diff(first: dict, second: dict) -> list[str]: changed.append(path) return changed + + +class JSONEncoder(Encoder): + def default(self, obj): + if isinstance(obj, set): + return list(obj) + return super(__class__, self).default(obj) diff --git a/streams-events/template.yaml b/streams-events/template.yaml index 6a974c6..da18415 100644 --- a/streams-events/template.yaml +++ b/streams-events/template.yaml @@ -8,7 +8,7 @@ Globals: Architectures: - x86_64 Layers: - - !Sub arn:aws:lambda:sa-east-1:336641857101:layer:layercake:81 + - !Sub arn:aws:lambda:sa-east-1:336641857101:layer:layercake:83 Environment: Variables: LOG_LEVEL: DEBUG