Fixed redirects with new dictionary
This commit is contained in:
@@ -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):
|
||||||
|
|||||||
@@ -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"
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user