-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.js
39 lines (30 loc) · 1 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
'use strict';
const ApiBuilder = require('claudia-api-builder');
const AWS = require('aws-sdk');
var api = new ApiBuilder();
var dynamoDb = new AWS.DynamoDB.DocumentClient();
api.get('/{proxy+}', function (request) {
'use strict';
let route = request.pathParams.proxy;
const params = {
TableName: process.env.DYNAMODB_TABLE,
Key: {
id: route,
},
};
return dynamoDb.get(params).promise().then(result => {
let count = (result.Item && result.Item.count) || 0;
console.log(`Result: ${JSON.stringify(result.Item)}`);
console.log(`Route: ${route}, Count: ${count}`);
const newValue = {
TableName: process.env.DYNAMODB_TABLE,
Item: {
id: route,
count: ++count,
},
}
console.log(`Result to return: ${newValue}`);
return dynamoDb.put(newValue).promise().then(result => { return newValue.Item });
});
});
module.exports = api;