From 7cf8c6bb3b8041068f6ae2f4ee0f86ff8228ad61 Mon Sep 17 00:00:00 2001 From: Andrew Tomaka Date: Wed, 13 Jun 2018 19:09:42 -0400 Subject: [PATCH] Provide access to data via GET request --- handler.js | 28 ++++++++++++++++++++++++++++ serverless.yml | 8 ++++++++ 2 files changed, 36 insertions(+) diff --git a/handler.js b/handler.js index f7348fb..dfe8c90 100644 --- a/handler.js +++ b/handler.js @@ -70,3 +70,31 @@ module.exports.check = (event, context, callback) => { }) .catch(error => callback(error)) } + +module.exports.data = (event, context, callback) => { + const zone = event.pathParameters.zone + const params = { + TableName: process.env.LIGHTSPEED_TABLE, + KeyConditionExpression: "#area = :area", + ExpressionAttributeNames: { + '#area': 'area', + }, + ExpressionAttributeValues: { + ':area': zone, + }, + ScanIndexForward: false + } + + if(event.queryStringParameters && event.queryStringParameters.latest) { + params.Limit = event.queryStringParameters.latest + } + + ddb.query(params).promise() + .then(data => { + callback(null, { statusCode: 200, body: JSON.stringify(data.Items) }) + }) + .catch(error => { + console.log(error) + callback(error) + }) +} diff --git a/serverless.yml b/serverless.yml index 898e7ff..2360a7a 100644 --- a/serverless.yml +++ b/serverless.yml @@ -56,3 +56,11 @@ functions: - schedule: rate: rate(1 day) enabled: true + data: + handler: handler.data + timeout: 10 + events: + - http: + path: data/{zone} + method: get + cors: true