diff --git a/lambda_config/lambda_config.py b/lambda_config/lambda_config.py index d21b739..060e6cc 100644 --- a/lambda_config/lambda_config.py +++ b/lambda_config/lambda_config.py @@ -104,7 +104,7 @@ def lambda_handler(event: dict, context): break 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] if file_name == "url.txt": 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: 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): case 2: if t.content is None or isinstance(t.content, Content): diff --git a/lambda_redirect/lambda_redirect.py b/lambda_redirect/lambda_redirect.py index 199211b..256340e 100644 --- a/lambda_redirect/lambda_redirect.py +++ b/lambda_redirect/lambda_redirect.py @@ -47,9 +47,11 @@ def lambda_handler(event: dict, context): try: redirects = json.load(resp['Body']) - params = RequestParams(**event.get('queryStringParameters', {})) - customer = redirects.get(params.id, {}) - tag = customer.get(params.tag_id, {}) + params = RequestParams(**event.get('queryStringParameters', {})) + customers = redirects.get('customers', {}) + customer = customers.get(params.id, {}) + tags = customer.get('tags', {}) + tag = tags.get(params.tag_id, {}) content = tag.get('content', None) # In case of multi face tag select the correct face @@ -63,7 +65,8 @@ def lambda_handler(event: dict, context): content = Content(**content) match content.type: 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', Params={'Bucket': bucket_data, 'Key': key}, @@ -71,7 +74,6 @@ def lambda_handler(event: dict, context): case "url": final_redirect = content.url - except json.decoder.JSONDecodeError as je: print(je) return { @@ -104,8 +106,8 @@ if __name__ == "__main__": "httpMethod": "GET", "queryStringParameters": { "id": "customer1", - "tag_id": "tag3", - "face_id": "face1" + "tag_id": "tag2", + "face_id": "face2" }, }