Fixed redirects with new dictionary

This commit is contained in:
2024-05-01 12:20:42 +02:00
parent c2c268c0fd
commit a9be8054fd
2 changed files with 11 additions and 8 deletions

View File

@@ -104,7 +104,7 @@ def lambda_handler(event: dict, context):
break break
t = c.tags[tag_key] t = c.tags[tag_key]
# crea un contenuto per il tag a seconda della lunghezza della chiave # Crea un contenuto per il tag a seconda della lunghezza della chiave
file_name = keys[0] file_name = keys[0]
if file_name == "url.txt": if file_name == "url.txt":
with s3_client.get_object(Bucket=bucket_data, Key=record.s3.object.key)['Body'] as url_file: with s3_client.get_object(Bucket=bucket_data, Key=record.s3.object.key)['Body'] as url_file:
@@ -112,6 +112,7 @@ def lambda_handler(event: dict, context):
else: else:
content = Content(type='s3', key=file_name, url=None) content = Content(type='s3', key=file_name, url=None)
# Aggiungi il contenuto a una faccia o al tag a seconda della lunghezza del path
match len(keys): match len(keys):
case 2: case 2:
if t.content is None or isinstance(t.content, Content): if t.content is None or isinstance(t.content, Content):

View File

@@ -47,9 +47,11 @@ def lambda_handler(event: dict, context):
try: try:
redirects = json.load(resp['Body']) redirects = json.load(resp['Body'])
params = RequestParams(**event.get('queryStringParameters', {})) params = RequestParams(**event.get('queryStringParameters', {}))
customer = redirects.get(params.id, {}) customers = redirects.get('customers', {})
tag = customer.get(params.tag_id, {}) customer = customers.get(params.id, {})
tags = customer.get('tags', {})
tag = tags.get(params.tag_id, {})
content = tag.get('content', None) content = tag.get('content', None)
# In case of multi face tag select the correct face # In case of multi face tag select the correct face
@@ -63,7 +65,8 @@ def lambda_handler(event: dict, context):
content = Content(**content) content = Content(**content)
match content.type: match content.type:
case "s3": case "s3":
key = f'{params.id}/{params.tag_id}/{content.key}' file_name = content.key.replace('+',' ') # remove slugify of filename
key = f'{params.id}/{params.tag_id}{'/'+params.face_id if params.face_id else ''}/{file_name}'
final_redirect = s3_client.generate_presigned_url('get_object', final_redirect = s3_client.generate_presigned_url('get_object',
Params={'Bucket': bucket_data, Params={'Bucket': bucket_data,
'Key': key}, 'Key': key},
@@ -71,7 +74,6 @@ def lambda_handler(event: dict, context):
case "url": case "url":
final_redirect = content.url final_redirect = content.url
except json.decoder.JSONDecodeError as je: except json.decoder.JSONDecodeError as je:
print(je) print(je)
return { return {
@@ -104,8 +106,8 @@ if __name__ == "__main__":
"httpMethod": "GET", "httpMethod": "GET",
"queryStringParameters": { "queryStringParameters": {
"id": "customer1", "id": "customer1",
"tag_id": "tag3", "tag_id": "tag2",
"face_id": "face1" "face_id": "face2"
}, },
} }