77from datetime import datetime
88import base64
99import os
10+ from aws .s3_service import S3Service
11+ from aws .sqs_service import SQSService
1012
1113# Configure logging for CloudWatch
1214logger = logging .getLogger ()
@@ -92,6 +94,7 @@ def format_result(result):
9294def lambda_handler (event , context ):
9395 # Log the start of the Lambda execution
9496 try :
97+
9598 logger .info ("Starting Lambda execution" )
9699 body = extract_data_body (event )
97100 participants_data = body
@@ -105,7 +108,9 @@ def lambda_handler(event, context):
105108 'message' : 'Nenhum participante encontrado para processamento'
106109 })
107110 }
108-
111+ s3_service = S3Service ()
112+ sqs_service = SQSService ()
113+
109114 logger .info (f"Processing { len (participants_data )} participants" )
110115
111116 # Create list of participants
@@ -129,8 +134,23 @@ def lambda_handler(event, context):
129134 builder = CertifiedBuilder ()
130135 certificates_results = builder .build_certificates (participants )
131136 # Format results before adding to response
132- formatted_results = [format_result (result ) for result in certificates_results ]
133- results .extend (formatted_results )
137+ formatted_results = []
138+
139+ for result in certificates_results :
140+ formatted_results .extend (format_result (result ))
141+
142+ if result .get ('success' ):
143+ s3_service .upload_file (result .get ('certificate_path' ), result .get ('certificate_key' ))
144+
145+ sqs_service .send_message ({
146+ "order_id" : result .get ('participant' , {}).get ('event' , {}).get ('order_id' , "" ),
147+ "product_id" : result .get ('participant' , {}).get ('event' , {}).get ('product_id' , "" ),
148+ "product_name" : result .get ('participant' , {}).get ('event' , {}).get ('product_name' , "" ),
149+ "email" : result .get ('participant' , {}).get ('email' , "" ),
150+ "certificate_key" : result .get ('certificate_key' , "" ),
151+ "success" : result .get ('success' , False )
152+ })
153+
134154
135155 logger .info ("Certificados gerados com sucesso" )
136156 return {
@@ -160,4 +180,3 @@ def lambda_handler(event, context):
160180 'message' : 'Erro ao gerar certificados'
161181 })
162182 }
163-
0 commit comments