Skip to content

Commit 12c9c47

Browse files
Atualizar SQSService para enviar múltiplas mensagens como uma lista e remover função de formatação de resultados não utilizada no lambda_handler, simplificando o código.
1 parent acbfc0e commit 12c9c47

2 files changed

Lines changed: 9 additions & 19 deletions

File tree

aws/sqs_service.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from aws.boto_aws import get_instance_aws, ServiceNameAWS
22
from config import config
33
from botocore.exceptions import ClientError
4-
from typing import Dict
4+
from typing import Dict, List
55
import json
66
import logging
77
import uuid
@@ -13,15 +13,16 @@ def __init__(self):
1313
self.aws = get_instance_aws(ServiceNameAWS.SQS)
1414
self.queue_url = config.QUEUE_URL
1515

16-
def send_message(self, message: Dict):
16+
def send_message(self, messagens: List[Dict]):
1717
try:
1818
# Add MessageGroupId for FIFO queue
1919
# Using order_id as MessageGroupId to ensure messages for the same order are processed in order
2020
message_group_id = str(uuid.uuid4())
2121
message_deduplication_id = str(uuid.uuid4())
22+
logger.info(f"Enviando mensagem para a fila {self.queue_url} com MessageGroupId: {message_group_id} e MessageDeduplicationId: {message_deduplication_id}, com {len(messagens)} mensagens")
2223
response = self.aws.send_message(
2324
QueueUrl=self.queue_url,
24-
MessageBody=json.dumps(message),
25+
MessageBody=json.dumps(messagens),
2526
MessageGroupId=message_group_id,
2627
MessageDeduplicationId=message_deduplication_id,
2728
)

lambda_function.py

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -78,19 +78,6 @@ def create_participant_object(participant_data):
7878
)
7979
return participant
8080

81-
def format_result(result):
82-
if isinstance(result, dict):
83-
formatted = {}
84-
for key, value in result.items():
85-
if isinstance(value, (Participant, Certificate, Event)):
86-
formatted[key] = value.model_dump()
87-
elif isinstance(value, datetime):
88-
formatted[key] = value.strftime('%Y-%m-%d %H:%M:%S')
89-
else:
90-
formatted[key] = value
91-
return formatted
92-
return result
93-
9481
def lambda_handler(event, context):
9582
# Log the start of the Lambda execution
9683
try:
@@ -134,15 +121,16 @@ def lambda_handler(event, context):
134121
builder = CertifiedBuilder()
135122
certificates_results = builder.build_certificates(participants)
136123
# Format results before adding to response
137-
formatted_results = []
124+
certificates_results_messagens = []
138125

139126
for result in certificates_results:
140-
formatted_results.extend(format_result(result))
127+
141128

142129
if result.get('success'):
143130
s3_service.upload_file(result.get('certificate_path'), result.get('certificate_key'))
144131

145-
sqs_service.send_message({
132+
133+
certificates_results_messagens.append({
146134
"order_id": result.get('participant', {}).get('event', {}).get('order_id', ""),
147135
"product_id": result.get('participant', {}).get('event', {}).get('product_id', ""),
148136
"product_name": result.get('participant', {}).get('event', {}).get('product_name', ""),
@@ -151,6 +139,7 @@ def lambda_handler(event, context):
151139
"success": result.get('success', False)
152140
})
153141

142+
sqs_service.send_message(certificates_results_messagens)
154143

155144
logger.info("Certificados gerados com sucesso")
156145
return {

0 commit comments

Comments
 (0)