diff --git a/aws_lambda/build/Release/zd.node b/aws_lambda/build/Release/zd.node new file mode 100755 index 0000000..e1008f6 Binary files /dev/null and b/aws_lambda/build/Release/zd.node differ diff --git a/aws_lambda/index.js b/aws_lambda/index.js new file mode 100644 index 0000000..6123ff1 --- /dev/null +++ b/aws_lambda/index.js @@ -0,0 +1,28 @@ +'use strict' + +let zd = require('./build/Release/zd.node') +zd.opendb("timezone21.bin") + +exports.handler = function(event, context, callback) { + let lat = parseFloat(event.queryStringParameters['lat']); + let lon = parseFloat(event.queryStringParameters['lon']); + let compact = event.queryStringParameters['c'] === "1"; + + let replacer = function(key, val) { + return val.toFixed ? Number(val.toFixed(6)) : val; + } + + let result = JSON.stringify(zd.lookup(lat, lon, !compact), replacer, compact?0:2); + + let response = { + statusCode: 200, + headers: { + "Cache-Control": "max-age=86400", + "Access-Control-Allow-Origin": "*" + }, + body: result + }; + + callback(null, response) +}; + diff --git a/aws_lambda/timezone21.bin b/aws_lambda/timezone21.bin new file mode 120000 index 0000000..5bceed4 --- /dev/null +++ b/aws_lambda/timezone21.bin @@ -0,0 +1 @@ +../database/timezone21.bin \ No newline at end of file