Advertisement
Guest User

Untitled

a guest
Feb 17th, 2020
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. var AWS = require("aws-sdk");
  2. var docClient = new AWS.DynamoDB.DocumentClient();
  3.  
  4. exports.handler = async (event, context, callback) => {
  5. var lockStatus = event.Details.ContactData.Attributes.LockStatus;
  6. var last4digits = event.Details.ContactData.Attributes.Last4Digits;
  7. var paramsQuery = {
  8. TableName: 'CreditCard',
  9. IndexName : "phoneNumber-cardNumber-index",
  10. FilterExpression: "contains(#cardNumber, :cardNumber)",
  11. ExpressionAttributeNames: {
  12. "#cardNumber": "cardNumber",
  13. },
  14. ExpressionAttributeValues: {
  15. ":cardNumber": last4digits
  16. }
  17. };
  18. try {
  19. const response = await docClient.scan(paramsQuery).promise();
  20. const length = response.Items.length;
  21. if (length > 0) {
  22. for (var i = 0; i < length; i++) {
  23. if (response.Items[i].cardNumber.endsWith(last4digits) === true) {
  24. paramsQuery = {
  25. TableName: 'CreditCard',
  26. Key: {
  27. "phoneNumber": response.Items[i].phoneNumber,
  28. "cardNumber": response.Items[i].cardNumber
  29. },
  30. UpdateExpression: "set #lock = :lockStatus",
  31. ExpressionAttributeValues:{
  32. ":lockStatus": lockStatus
  33. },
  34. ExpressionAttributeNames: {
  35. '#lock': "lock"
  36. },
  37. ReturnValues:"UPDATED_NEW"
  38. };
  39. await docClient.update(paramsQuery).promise();
  40. callback(null, buildResponse(true, lockStatus));
  41. }
  42. }
  43. } else {
  44. callback(null, buildResponse(true));
  45. }
  46. } catch (err) {
  47. console.log(err)
  48. context.fail(buildResponse(false));
  49. }
  50. };
  51.  
  52. function buildResponse(isSuccess, lockStatus) {
  53. if (isSuccess) {
  54. return {
  55. lock: lockStatus,
  56. lambdaResult: "Success"
  57. };
  58. }
  59. else {
  60. console.log("Lambda returned error to Connect");
  61. return { lambdaResult: "Error" };
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement