Guest User

Lambda

a guest
Jan 9th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. ## This is the entire Lambda function! ##
  2.  
  3. const doc = require('dynamodb-doc');
  4. const uuid = require('uuid');
  5.  
  6. const dynamo = new doc.DynamoDB();
  7.  
  8. exports.handler = (event, context, callback) => {
  9. let req = event.queryStringParameters;
  10. let loginType = req.Email ? "Email" : "EasyPin";
  11. let loginKey = req.Email ? req.Email : req.EasyPin ? req.EasyPin : null;
  12.  
  13. const done = (err, res) => callback(null, {
  14. statusCode : err ? '400' : '200',
  15. body : err ? err.message : JSON.stringify(res),
  16. headers : {
  17. 'Content-Type' : 'application/json',
  18. "Access-Control-Allow-Origin": "*" // neccessary for front-end!
  19. },
  20. });
  21.  
  22. let params = {
  23. TableName : "Users",
  24. IndexName : loginType + "-index",
  25. KeyConditionExpression : loginType + " = :loginKey",
  26. ExpressionAttributeValues : {
  27. ":loginKey" : loginKey
  28. }
  29. };
  30.  
  31. dynamo.query(params, function (err, data) {
  32. if (err) {
  33. done(err)
  34. } else if ((data.Items).length > 1) {
  35. done(null, "Multiple users with " + loginType + " " + loginKey + " found - this shouldn't happen! Please contact ##REDACTED FOR PASTEBIN##")
  36. } else if ((data.Items).length == 0) {
  37. done(null, "User with " + loginType + " " + loginKey + " not found.")
  38. } else if ((data.Items).length == 1) {
  39. addCompanyDetails(data.Items[0])
  40. }
  41. });
  42.  
  43. function addCompanyDetails(UserData) {
  44. console.log(UserData.Company)
  45. params = {
  46. TableName : "Customers",
  47. IndexName : "CustomerName-index",
  48. KeyConditionExpression : "CustomerName = :company",
  49. ExpressionAttributeValues : {
  50. ":company" : UserData.Company
  51. }
  52. };
  53.  
  54. dynamo.query(params, function (err, data) {
  55. if (err) {
  56. done(err)
  57. } else if ((data.Items).length > 1) {
  58. done(null, "Multiple companies with the name " + UserData.Company + " found - this shouldn't happen! Please contact ##REDACTED FOR PASTEBIN##")
  59. } else if ((data.Items).length == 0) {
  60. done(null, "We couldn't retrieve company data for " + UserData.Company + " - did you recently sign up?")
  61. } else if ((data.Items).length == 1) {
  62. let CompanyData = data.Items[0]
  63. let result = {
  64. "firstName" : UserData.FirstName,
  65. "uid" : UserData.EasyPin,
  66. "prefs" : UserData.Prefs,
  67. "subscriptionEnd": CompanyData.SubscriptionEnd,
  68. "chains" : CompanyData.Chains,
  69. "maxBatch" : CompanyData.MaxBatch,
  70. "features" : CompanyData.Features
  71. }
  72. done(null, result)
  73. }
  74. });
  75.  
  76. }
  77. };
Advertisement
Add Comment
Please, Sign In to add comment