Created basic RESTapi to work with aws
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
"use strict";
|
||||
|
||||
var AWS = require('aws-sdk');
|
||||
|
||||
// Get "Hello" Dynamo table name. Replace DEFAULT_VALUE
|
||||
// with the actual table name from your stack.
|
||||
const helloDBArn = process.env['HELLO_DB'] || 'DEFAULT_VALUE'; //'Mark-HelloTable-1234567';
|
||||
const helloDBArnArr = helloDBArn.split('/');
|
||||
const helloTableName = helloDBArnArr[helloDBArnArr.length - 1];
|
||||
|
||||
// handleHttpRequest is the entry point for Lambda requests
|
||||
exports.handleHttpRequest = function(request, context, done) {
|
||||
try {
|
||||
const userId = request.pathParameters.userId;
|
||||
let response = {
|
||||
headers: {},
|
||||
body: '',
|
||||
statusCode: 200
|
||||
};
|
||||
|
||||
switch (request.httpMethod) {
|
||||
case 'GET': {
|
||||
console.log('GET');
|
||||
let dynamo = new AWS.DynamoDB();
|
||||
var params = {
|
||||
TableName: helloTableName,
|
||||
Key: { 'user_id' : { S: userId } },
|
||||
ProjectionExpression: 'email'
|
||||
};
|
||||
// Call DynamoDB to read the item from the table
|
||||
dynamo.getItem(params, function(err, data) {
|
||||
if (err) {
|
||||
console.log("Error", err);
|
||||
throw `Dynamo Get Error (${err})`
|
||||
} else if (data.Item) {
|
||||
console.log("Success", data.Item.email);
|
||||
response.body = JSON.stringify({ "email": data.Item.email.S });
|
||||
done(null, response);
|
||||
} else {
|
||||
console.log("Not found id=", userId);
|
||||
response.body = "Not found"
|
||||
response.statusCode = 404
|
||||
done(null, response);
|
||||
}
|
||||
});
|
||||
break;
|
||||
}
|
||||
case 'POST': {
|
||||
console.log('POST');
|
||||
let bodyJSON = JSON.parse(request.body || '{}');
|
||||
let dynamo = new AWS.DynamoDB();
|
||||
let params = {
|
||||
TableName: helloTableName,
|
||||
Item: {
|
||||
'user_id': { S: userId },
|
||||
'email': { S: bodyJSON['email'] }
|
||||
}
|
||||
};
|
||||
dynamo.putItem(params, function(error, data) {
|
||||
if (error) throw `Dynamo Error (${error})`;
|
||||
else done(null, response);
|
||||
})
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
done(e, null);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user