From fb580d45b7bf86e4c4b158ea10971f713ff3cf7d Mon Sep 17 00:00:00 2001 From: Brandon Johnson Date: Mon, 4 Jun 2018 15:12:07 -0400 Subject: [PATCH] .execute => .query, remove scheduler.js This is necessary due to https://github.com/sidorares/node-mysql2/issues/649 We could just cast wherever we call execute, instead of using the typecast option, but this is easier, and we shouldn't really NEED prepared statements (though they would be nice) --- node/db_fetch.js | 28 ++++++++++++++-------------- node/index.js | 3 +-- node/scheduler.js | 11 ----------- node/user_auth.js | 10 +++++----- 4 files changed, 20 insertions(+), 32 deletions(-) delete mode 100644 node/scheduler.js diff --git a/node/db_fetch.js b/node/db_fetch.js index 1ae2b16..ced6d7b 100644 --- a/node/db_fetch.js +++ b/node/db_fetch.js @@ -16,9 +16,9 @@ module.exports = { conn = await pool.getConnection(); try{ if(num_requests <= 0 ){ - var [res, field] = await connection.execute('SELECT loginrequests.id, users.email, loginrequests.comment, loginrequests.date_requested FROM users INNER JOIN loginrequests ON users.loginreq_id = loginrequests.id WHERE email_validated=1', []); + var [res, field] = await connection.query('SELECT loginrequests.id, users.email, loginrequests.comment, loginrequests.date_requested FROM users INNER JOIN loginrequests ON users.loginreq_id = loginrequests.id WHERE email_validated=1', []); }else{ - var [res, field] = await connection.execute('SELECT loginrequests.id, users.email, loginrequests.comment, loginrequests.date_requested FROM users INNER JOIN loginrequests ON users.loginreq_id = loginrequests.id WHERE email_validated=1 LIMIT ? OFFSET ?', [num_requests, start_at]); + var [res, field] = await connection.query('SELECT loginrequests.id, users.email, loginrequests.comment, loginrequests.date_requested FROM users INNER JOIN loginrequests ON users.loginreq_id = loginrequests.id WHERE email_validated=1 LIMIT ? OFFSET ?', [num_requests, start_at]); } }finally{ connection.release(); @@ -38,10 +38,10 @@ module.exports = { /*Gets info about user with given id. Will use given connection if provided, otherwise uses an independant conneciton */ get_user_by_id: async function(id, connection){ if(connection){ - var [res, fields] = await connection.execute("SELECT * FROM users WHERE id=?", [id]); + var [res, fields] = await connection.query("SELECT * FROM users WHERE id=?", [id]); }else{ - var [res, fields] = await pool.execute("SELECT * FROM users WHERE id=?", [id]); + var [res, fields] = await pool.query("SELECT * FROM users WHERE id=?", [id]); } if(res.length < 1){ @@ -57,7 +57,7 @@ module.exports = { let connection = await pool.getConnection(); try{ - var [res, fields] = await connection.execute('SELECT id, start_time, duration, approved, user_id FROM timeslots WHERE start_time > ? AND start_time < ?', [beginDate, endDate]); + var [res, fields] = await connection.query('SELECT id, start_time, duration, approved, user_id FROM timeslots WHERE start_time > ? AND start_time < ?', [beginDate, endDate]); }finally{ connection.release(); } @@ -90,7 +90,7 @@ module.exports = { admin_get_timeslot_requests: async function(beginDate, endDate){ let conn = await pool.getConnection(); try{ - var [res, fields] = await connection.execute('SELECT users.email, timeslots.id, timeslots.start_time, timeslots.duration, timeslots.approved'+ + var [res, fields] = await connection.query('SELECT users.email, timeslots.id, timeslots.start_time, timeslots.duration, timeslots.approved'+ ' FROM timeslots INNER JOIN users ON timeslots.user_id=users.id'+ ' WHERE start_time >= ? AND start_time < ?', [beginDate, endDate]); @@ -137,7 +137,7 @@ module.exports = { let start_date = date; let end_date = new Date(date.getTime() + duration*1000); - var [res, fields] = await connection.execute("SELECT count(*) FROM timeslots WHERE user_id=? AND"+ + var [res, fields] = await connection.query("SELECT count(*) FROM timeslots WHERE user_id=? AND"+ " ((start_time <= ? AND DATE_ADD(start_time, INTERVAL duration SECOND) >= ?)"+ " OR (start_time <= ? AND DATE_ADD(start_time, INTERVAL duration SECOND) >= ?))", [user_id, start_date, start_date, end_date, end_date]); @@ -161,7 +161,7 @@ module.exports = { let start_date = date; let end_date = new Date(date.getTime() + duration*1000); - var [res, fields] = await connection.execute("SELECT count(*) FROM timeslots WHERE approved=1 AND"+ + var [res, fields] = await connection.query("SELECT count(*) FROM timeslots WHERE approved=1 AND"+ " ((start_time <= ? AND DATE_ADD(start_time, INTERVAL duration SECOND) >= ?)"+ " OR (start_time <= ? AND DATE_ADD(start_time, INTERVAL duration SECOND) >= ?))", [start_date, start_date, end_date, end_date]); @@ -199,7 +199,7 @@ module.exports = { }; } - await connection.execute("INSERT INTO timeslots (user_id, start_time, duration) VALUES (?, ?, ?)", [user_id, date, duration]); + await connection.query("INSERT INTO timeslots (user_id, start_time, duration) VALUES (?, ?, ?)", [user_id, date, duration]); await connection.commit(); }catch(e){ //Rollback, let error bubble up. @@ -212,7 +212,7 @@ module.exports = { }, delete_request: async function(req_id, user_id){ - let [res, fields] = await pool.execute("DELETE FROM timeslots WHERE user_id=? AND id=?", [user_id, req_id]); + let [res, fields] = await pool.query("DELETE FROM timeslots WHERE user_id=? AND id=?", [user_id, req_id]); if(res.affectedRows <= 0){ throw { @@ -231,7 +231,7 @@ module.exports = { let connection = await pool.getConnection(); try{ - let [res, fields] = await connection.execute("SELECT user_id FROM timeslots WHERE id=?", [id]); + let [res, fields] = await connection.query("SELECT user_id FROM timeslots WHERE id=?", [id]); if(res.length < 1){ @@ -243,7 +243,7 @@ module.exports = { var user_id = res[0].user_id; - await connection.execute("DELETE FROM timeslots WHERE id=?", [id]); + await connection.query("DELETE FROM timeslots WHERE id=?", [id]); }finally{ connection.release(); @@ -257,10 +257,10 @@ module.exports = { async function clean_db(){ let connection = await pool.getConnection(); try{ - await connection.execute("DELETE FROM timeslots WHERE DATE_ADD(start_time, INTERVAL duration SECOND) <= ?", [new Date(Date.now())]); + await connection.query("DELETE FROM timeslots WHERE DATE_ADD(start_time, INTERVAL duration SECOND) <= ?", [new Date(Date.now())]); //Deletes logins and requests from over 2 weeks ago, if they have not been approved yet. //TODO send out an email to them if this happens? - await connection.execute("DELETE FROM loginrequests WHERE date_requested < ?", [new Date(Date.now() - 14*24*60*60*1000)]); + await connection.query("DELETE FROM loginrequests WHERE date_requested < ?", [new Date(Date.now() - 14*24*60*60*1000)]); }finally{ connection.release(); } diff --git a/node/index.js b/node/index.js index cb69e40..e60afae 100755 --- a/node/index.js +++ b/node/index.js @@ -68,11 +68,10 @@ let mysql_pool = mysql.createPool({ password: options['mysql_pass'], database: options['mysql_db'], /*This code snippet found from https://www.bennadel.com/blog/3188-casting-bit-fields-to-booleans-using-the-node-js-mysql-driver.htm*/ - typeCast: function castField( field, useDefaultTypeCasting ) { + typeCast: function( field, useDefaultTypeCasting ) { if (field.type === "BIT" && field.length === 1) { let bytes = field.buffer(); return bytes[0] === 1; - } return useDefaultTypeCasting(); diff --git a/node/scheduler.js b/node/scheduler.js deleted file mode 100644 index 6f6756a..0000000 --- a/node/scheduler.js +++ /dev/null @@ -1,11 +0,0 @@ -const time_quantum = 30; /*Time quantum in minutes */ -const num_days = 7; /*Number of days to display*/ -const my_slot_request_color = '#1c22ea'; -const my_slot_accepted_color = '#23ea1c'; -const other_slot_requested_color = '#fcf802'; -const other_slot_accepted_color = '#ea1c1c'; -const cur_selection_color = '#fca801'; - -module.exports = { - -} \ No newline at end of file diff --git a/node/user_auth.js b/node/user_auth.js index fd5c3e6..ccf53e7 100644 --- a/node/user_auth.js +++ b/node/user_auth.js @@ -12,7 +12,7 @@ module.exports = { let connection = await pool.getConnection(); try{ - var [res, field] = await connection.execute('SELECT id, passhash, passsalt, approved, admin from users where email = ?', [username]); + var [res, field] = await connection.query('SELECT id, passhash, passsalt, approved, admin from users where email = ?', [username]); }finally{ connection.release(); } @@ -65,7 +65,7 @@ module.exports = { await connection.beginTransaction(); try{ - let [res, fields] = await connection.execute('SELECT * FROM users WHERE email = ?', [email]); + let [res, fields] = await connection.query('SELECT * FROM users WHERE email = ?', [email]); if(res.length > 0){ throw { @@ -74,7 +74,7 @@ module.exports = { }; } - await connection.execute('CALL user_request(?, ?, ?, ?, ?)', [email, hash, salt, email_tok, comment]); + await connection.query('CALL user_request(?, ?, ?, ?, ?)', [email, hash, salt, email_tok, comment]); await connection.commit(); }catch(e){ await connection.rollback(); @@ -88,7 +88,7 @@ module.exports = { email_verify: async function(email, email_tok){ let connection = await pool.getConnection(); try{ - let [results, fields] = await connection.execute('SELECT loginreq_id FROM users WHERE email=?', [email]); + let [results, fields] = await connection.query('SELECT loginreq_id FROM users WHERE email=?', [email]); if(results.length != 1){ throw { @@ -106,7 +106,7 @@ module.exports = { }; } - let [results1, fields1] = await connection.execute('SELECT email_token, email_validated FROM loginrequests where id=?', [request_ID]); + let [results1, fields1] = await connection.query('SELECT email_token, email_validated FROM loginrequests where id=?', [request_ID]); if(results1.length < 1){ throw {