Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## This is the entire Lambda function! ##
- const doc = require('dynamodb-doc');
- const uuid = require('uuid');
- const dynamo = new doc.DynamoDB();
- exports.handler = (event, context, callback) => {
- let req = event.queryStringParameters;
- let loginType = req.Email ? "Email" : "EasyPin";
- let loginKey = req.Email ? req.Email : req.EasyPin ? req.EasyPin : null;
- const done = (err, res) => callback(null, {
- statusCode : err ? '400' : '200',
- body : err ? err.message : JSON.stringify(res),
- headers : {
- 'Content-Type' : 'application/json',
- "Access-Control-Allow-Origin": "*" // neccessary for front-end!
- },
- });
- let params = {
- TableName : "Users",
- IndexName : loginType + "-index",
- KeyConditionExpression : loginType + " = :loginKey",
- ExpressionAttributeValues : {
- ":loginKey" : loginKey
- }
- };
- dynamo.query(params, function (err, data) {
- if (err) {
- done(err)
- } else if ((data.Items).length > 1) {
- done(null, "Multiple users with " + loginType + " " + loginKey + " found - this shouldn't happen! Please contact ##REDACTED FOR PASTEBIN##")
- } else if ((data.Items).length == 0) {
- done(null, "User with " + loginType + " " + loginKey + " not found.")
- } else if ((data.Items).length == 1) {
- addCompanyDetails(data.Items[0])
- }
- });
- function addCompanyDetails(UserData) {
- console.log(UserData.Company)
- params = {
- TableName : "Customers",
- IndexName : "CustomerName-index",
- KeyConditionExpression : "CustomerName = :company",
- ExpressionAttributeValues : {
- ":company" : UserData.Company
- }
- };
- dynamo.query(params, function (err, data) {
- if (err) {
- done(err)
- } else if ((data.Items).length > 1) {
- done(null, "Multiple companies with the name " + UserData.Company + " found - this shouldn't happen! Please contact ##REDACTED FOR PASTEBIN##")
- } else if ((data.Items).length == 0) {
- done(null, "We couldn't retrieve company data for " + UserData.Company + " - did you recently sign up?")
- } else if ((data.Items).length == 1) {
- let CompanyData = data.Items[0]
- let result = {
- "firstName" : UserData.FirstName,
- "uid" : UserData.EasyPin,
- "prefs" : UserData.Prefs,
- "subscriptionEnd": CompanyData.SubscriptionEnd,
- "chains" : CompanyData.Chains,
- "maxBatch" : CompanyData.MaxBatch,
- "features" : CompanyData.Features
- }
- done(null, result)
- }
- });
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment