aboutsummaryrefslogtreecommitdiffstats
path: root/csci4131/hw7/dbio.js
diff options
context:
space:
mode:
authorMatt Strapp <matt@mattstrapp.net>2022-05-24 11:18:46 -0500
committerMatt Strapp <matt@mattstrapp.net>2022-05-24 11:19:55 -0500
commit7a73162607544204032aa66cce755daf21edebda (patch)
tree58578e01f15f34a855d99c32898db9d7a1603e67 /csci4131/hw7/dbio.js
parentdo some stuff (diff)
downloadhomework-7a73162607544204032aa66cce755daf21edebda.tar
homework-7a73162607544204032aa66cce755daf21edebda.tar.gz
homework-7a73162607544204032aa66cce755daf21edebda.tar.bz2
homework-7a73162607544204032aa66cce755daf21edebda.tar.lz
homework-7a73162607544204032aa66cce755daf21edebda.tar.xz
homework-7a73162607544204032aa66cce755daf21edebda.tar.zst
homework-7a73162607544204032aa66cce755daf21edebda.zip
Graduate
Signed-off-by: Matt Strapp <matt@mattstrapp.net>
Diffstat (limited to 'csci4131/hw7/dbio.js')
-rw-r--r--csci4131/hw7/dbio.js136
1 files changed, 136 insertions, 0 deletions
diff --git a/csci4131/hw7/dbio.js b/csci4131/hw7/dbio.js
new file mode 100644
index 0000000..96faf93
--- /dev/null
+++ b/csci4131/hw7/dbio.js
@@ -0,0 +1,136 @@
+var mysql = require("mysql");
+var bcrypt = require("bcrypt");
+var fs = require("fs");
+var xml2js = require("xml2js");
+var parser = new xml2js.Parser();
+var conInfo;
+var connection;
+
+fs.readFile(__dirname + '/dbconfig.xml', function (err, data) {
+ if (err) throw err;
+ parser.parseString(data, function (err, result) {
+ if (err) throw err;
+ conInfo = result;
+ });
+ connection = mysql.createConnection({
+ host: conInfo.dbconfig.host[0],
+ user: conInfo.dbconfig.user[0],
+ password: conInfo.dbconfig.password[0],
+ database: conInfo.dbconfig.database[0],
+ port: conInfo.dbconfig.port[0]
+ });
+
+ connection.connect(function (err) {
+ if (err) {
+ throw err;
+ };
+ console.log("Connected to MYSQL database!");
+ });
+});
+
+
+
+function passcheck(user,pass) {
+ return new Promise(function(resolve, reject) {
+ connection.query('SELECT * FROM tbl_accounts', function(err, rows, fields) {
+ let ret = [];
+ if (err) {
+ return reject(err);
+ }
+ for (var i = 0; i < rows.length; i++) {
+ if (rows[i].acc_login.localeCompare(user) === 0) {
+ if (bcrypt.compareSync(pass, rows[i].acc_password)) {
+ ret += rows[i];
+ }
+ }
+ }
+ resolve(ret);
+ });
+ });
+}
+
+function getContacts() {
+ return new Promise (function(resolve, reject) {
+ let conTab = []
+ connection.query('SELECT * FROM tbl_contacts', function (err, rows, fields) {
+ if (err) throw err;
+ resolve(rows);
+ });
+ });
+}
+
+function addContacts(contact) {
+ let newCon = {
+ name: contact.name,
+ category: contact.category,
+ location: contact.location,
+ contact_info: contact.contact,
+ email: contact.email,
+ website: contact.website,
+ }
+ return new Promise (function (resolve, reject) {
+ connection.query('SELECT * FROM tbl_contacts where name=?', contact.name, function(err, rows, fields) {
+ if (err) throw err;
+ console.log("Table found")
+ if (rows.length > 0) {
+ // Duplicate
+ console.log("found Duplicate name!");
+ resolve(false);
+ } else {
+ connection.query('INSERT tbl_contacts SET ?', newCon, function (err, result) { //Parameterized insert
+ if (err) throw err;
+ console.log("Values inserted.");
+ resolve(true);
+ });
+ }
+ });
+ });
+}
+
+
+
+function editContact(contact) {
+ let edit = {
+ name: contact.name,
+ category: contact.category,
+ location: contact.location,
+ contact_info: contact.contact,
+ email: contact.email,
+ website: contact.website,
+ }
+
+ return new Promise(function (resolve, reject) {
+ connection.query('SELECT * FROM tbl_contacts where name=?', contact.name, function (err, rows, fields) {
+ if (err) throw err;
+ if (rows.length == 0) {
+ console.log("Name Changed!");
+ resolve(false);
+ } else {
+ connection.query('UPDATE tbl_contacts SET ? WHERE name=?', [edit, edit.name], function(err, result) {
+ if (err) throw err;
+ console.log("Value edited successfully?")
+ resolve(true);
+ });
+ }
+ });
+ });
+}
+
+function deleteContact(contact) {
+ return new Promise(function(resolve, reject) {
+ connection.query('DELETE FROM tbl_contacts WHERE name=?', contact, function (err, result) {
+ if (err) throw err;
+ console.log("Row deleted!")
+ resolve();
+ })
+ })
+}
+
+
+
+
+exports.addContact = addContacts;
+exports.query = passcheck;
+exports.getContacts = getContacts;
+exports.deleteContact = deleteContact;
+exports.editContact = editContact;