Advertisement
Guest User

queue.js

a guest
Mar 16th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. exports.queuePicker = function(event, context, callback) {
  2.  
  3.     var timestamp = new Date().getTime().toString();
  4.     var username;
  5.     try {
  6.         username = JSON.parse(event["body"])["username"]
  7.     } catch(e) {
  8.         username = event["body"]["username"]
  9.     }
  10.  
  11.     if(event.requestContext.authorizer.claims.email !== username) {
  12.         callback(null, {
  13.             "isBase64Encoded": false,
  14.             "statusCode": 401,
  15.             "headers": {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'},
  16.             "body": JSON.stringify({'message': 'User not found.'}, null, 2)
  17.         });
  18.         return;
  19.     }
  20.  
  21.     var dbName;
  22.     if(event.headers.test === "lambda") {
  23.         dbName = "pickmo_testdb";
  24.     } else if(event.headers.test === "api") {
  25.         dbName = "pickmo_APIdb"
  26.     } else {
  27.         dbName = "pickmodb"
  28.     }
  29.  
  30.     var connection = mysql.createConnection({
  31.         host: "pickmo.cm8t4da2mqrz.us-west-2.rds.amazonaws.com",
  32.         user: process.env.RDS_USERNAME,
  33.         password: process.env.RDS_PWD,
  34.         port: 3306,
  35.         database: dbName
  36.     });
  37.  
  38.     connection.connect(function(err) {
  39.         if(err) {
  40.             callback(null, {
  41.                 "isBase64Encoded": false,
  42.                 "statusCode": 400,
  43.                 "headers": {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'},
  44.                 "body": JSON.stringify(err, null, 2)
  45.                 });
  46.             return;
  47.         }
  48.     });
  49.     var query = squel.insert()
  50.                     .into("PickerQueue")
  51.                     .set("username", username)
  52.                     .set("timestamp", timestamp)
  53.                     .toString();
  54.        
  55.     connection.query(query, function(err, results) {
  56.         if(err) {
  57.             callback(null, {
  58.                 "isBase64Encoded": false,
  59.                 "statusCode": 400,
  60.                 "headers": {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'},
  61.                 "body": JSON.stringify(err)
  62.             });
  63.             return;
  64.         }
  65.         callback(null, {
  66.             "isBase64Encoded": false,
  67.             "statusCode": 200,
  68.             "headers": {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'},
  69.             "body": JSON.stringify(results)
  70.         });
  71.     });
  72.     connection.end();
  73. }
  74.  
  75. exports.dequeuePicker = function(event, context, callback) {
  76.     var username;
  77.     try {
  78.         username = JSON.parse(event["pathParameters"])["username"]
  79.     }
  80.     catch (e) {
  81.         username = event["pathParameters"]["username"]
  82.     }
  83.  
  84.     var dbName;
  85.     if(event.headers.test === "lambda") {
  86.         dbName = "pickmo_testdb";
  87.     } else if(event.headers.test === "api") {
  88.         dbName = "pickmo_APIdb"
  89.     } else {
  90.         dbName = "pickmodb"
  91.     }
  92.  
  93.     var connection = mysql.createConnection({
  94.         host: "pickmo.cm8t4da2mqrz.us-west-2.rds.amazonaws.com",
  95.         user: process.env.RDS_USERNAME,
  96.         password: process.env.RDS_PWD,
  97.         port: 3306,
  98.         database: dbName
  99.     });
  100.  
  101.     connection.connect(function(err) {
  102.         if(err) {
  103.             if(callback) {
  104.                 callback(null, {
  105.                     "isBase64Encoded": false,
  106.                     "statusCode": 400,
  107.                     "headers": {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'},
  108.                     "body": JSON.stringify(err, null, 2)
  109.                     });
  110.                 return;
  111.             }
  112.         }
  113.     });
  114.  
  115.     var query = squel.delete()
  116.                     .from("PickerQueue")
  117.                     .where("username = ?", username)
  118.                     .toString();
  119.  
  120.     connection.query(query, function(err, results) {
  121.         if(callback) {
  122.             if(err) {
  123.                 callback(null, {
  124.                     "isBase64Encoded": false,
  125.                     "statusCode": 400,
  126.                     "headers": {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'},
  127.                     "body": JSON.stringify(err)
  128.                 });
  129.                 return;
  130.             }
  131.             callback(null, {
  132.                 "isBase64Encoded": false,
  133.                 "statusCode": 200,
  134.                 "headers": {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'},
  135.                 "body": JSON.stringify(results)
  136.             });
  137.         }
  138.     });
  139.     connection.end();
  140. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement