Advertisement
Guest User

Untitled

a guest
May 15th, 2019
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var util = require('util');
  2. var AWS = require('aws-sdk');
  3. var mysql = require('mysql');
  4.  
  5. var connection = mysql.createConnection({
  6.     host: "ls-77e1472d76ad627554447c61511cf31b8998c2ce.c1ca77nowf79.us-west-2.rds.amazonaws.com",
  7.     user: "dbmasteruser",
  8.     password: "comp4900",
  9.     database: "database1",
  10. });
  11.  
  12. var S = new AWS.S3({ // access to S3 methods
  13.     maxRetries: 0,
  14.     region: 'us-west-2',
  15. });
  16.  
  17. exports.handler = function(event, context, callback) {
  18.     // Read options from the event.
  19.     console.log("Reading options from event:\n", util.inspect(event, {depth: 5}));
  20.     var srcBucket = event.Records[0].s3.bucket.name;
  21.     var srcKey    = event.Records[0].s3.object.key;
  22.    
  23.     // diagnostics
  24.     console.log("srcBucket: ", srcBucket);
  25.     console.log("srcKey: ", srcKey);
  26.  
  27.     // don't run on anything that isn't a CSV
  28.     if (srcKey.match(/\.csv$/) === null) {
  29.         var msg = "Key " + srcKey + " is not a csv file, bailing out";
  30.         console.log(msg);
  31.         return callback(null, {message: msg});
  32.        
  33.     }
  34.    
  35.     S.getObject({
  36.         Bucket: srcBucket,
  37.         Key: srcKey,
  38.     }, function (err, data) {
  39.         if (err !== null) { return callback(err, null); }
  40.         // console.log("Raw CSV data: \n" + data.Body.toString('utf-8'));
  41.        
  42.         var lines = data.Body.toString('utf-8').split('\n');
  43.         lines.slice(1).forEach(function (raw_line) {
  44.             var line = raw_line.split(',');
  45.             if (line.length < 3) { return null; }
  46.             // console.log(line); // shows each line in csv file
  47.            
  48.             connection.query('SELECT * FROM Project WHERE Project_Name = ?', line[4], function(error, results, fields) {
  49.                 if(error) {
  50.                     throw error;
  51.                 }
  52.                
  53.                 // console.log(results);
  54.                
  55.  
  56.                 if(results.length != 0) { // if row is found
  57.                     console.log("No insert");
  58.                 } else {
  59.                    
  60.                     console.log("Can insert!");
  61.                    
  62.                     var proj_data = {Project_Name: line[4], Project_Desc: line[5], Project_Start_Date: line[6], Project_End_Date: line[7], Active: 1, User_User_ID: 1};
  63.                
  64.                     connection.query('INSERT INTO Project SET ? WHERE Project_Name = ?', [proj_data, line[4]], function (error, results, fields) {
  65.                     if (error) {
  66.                         // connection.destroy();
  67.                         throw error;
  68.                     } else {
  69.                         // connected!
  70.                         console.log(results);
  71.                         callback(error, results);
  72.                         // connection.end(function (err) { callback(err, results); });
  73.                     }
  74.                     // connection.destroy();
  75.                 });
  76.  
  77.                 }
  78.                
  79.             });
  80.            
  81.              
  82.             return callback(null, data);
  83.     });
  84.      
  85. })};
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement