Moved CORS headers up to include non-200 responses

This commit is contained in:
Michal Migurski
2022-07-28 14:19:49 -07:00
committed by GitHub
parent 0557f0e23c
commit 354477ae02

View File

@@ -60,12 +60,17 @@ def lambda_handler(event, context):
pmtiles_path(os.environ.get("PMTILES_PATH"), name), offset, length
)
headers = {}
if "CORS" in os.environ:
headers["Access-Control-Allow-Origin"] = os.environ.get("CORS")
reader = Reader(get_bytes)
try:
minzoom = int(reader.header().metadata["minzoom"])
maxzoom = int(reader.header().metadata["maxzoom"])
if tile.z < minzoom or tile.z > maxzoom:
return {"statusCode": 404, "body": "Tile not found"}
return {"statusCode": 404, "headers": headers, "body": "Tile not found"}
tile_data = reader.get(tile.z, tile.x, tile.y)
if not tile_data:
@@ -73,16 +78,11 @@ def lambda_handler(event, context):
except ClientError as e:
error_code = e.response["Error"]["Code"]
if error_code == "AccessDenied":
return {"statusCode": 404, "body": "Archive not found"}
return {"statusCode": 404, "headers": headers, "body": "Archive not found"}
else:
raise e
headers = {
"Content-Type": "application/protobuf",
}
if "CORS" in os.environ:
headers["Access-Control-Allow-Origin"] = os.environ.get("CORS")
headers["Content-Type"] = "application/protobuf"
if reader.header().metadata.get("compression") == "gzip":
if is_api_gateway: