Skip to content

Instantly share code, notes, and snippets.

@wilandm
Created June 27, 2017 01:38
Show Gist options
  • Save wilandm/c0ef9c6feb6c4749093a101525958260 to your computer and use it in GitHub Desktop.
Save wilandm/c0ef9c6feb6c4749093a101525958260 to your computer and use it in GitHub Desktop.
#!/usr/bin/env nodejs
var express = require("express");
var mysql = require("mysql");
var bodyParser = require("body-parser");
var md5 = require('MD5');
var rest = require("./rest.js");
var app = express();
function REST() {
var self = this;
self.connectMysql();
};
REST.prototype.connectMysql = function () {
var self = this;
var pool = mysql.createPool({
connectionLimit: 100,
host: 'localhost',
user: '*****username******',
password: '*****password*****',
database: '****database******',
debug: false
});
pool.getConnection(function (err, connection) {
if (err) {
self.stop(err);
throw err;
} else {
self.configureExpress(connection);
}
});
}
REST.prototype.configureExpress = function (connection) {
var self = this;
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var router = express.Router();
app.use('/', router);
var rest_router = new rest(router, connection, md5);
self.startServer();
}
REST.prototype.startServer = function () {
app.listen(3222, function () {
console.log("All right ! I am alive at Port 3222.");
});
}
REST.prototype.stop = function (err) {
console.log("ISSUE WITH MYSQL n" + err);
process.exit(1);
}
new REST();
#!/usr/bin/env nodejs
var express = require("express");
var mysql = require("mysql");
var md5 = require('MD5');
var bodyParser = require("body-parser");
var async = require("async");
function REST_ROUTER(router, connection, md5) {
var self = this;
self.handleRoutes(router, connection, md5);
}
REST_ROUTER.prototype.handleRoutes = function (router, connection, md5) {
router.get("/", function (req, res) {
res.json({ "Message": "Hello World !" });
});
router.post("/login", function (req, res) {
var query = "SELECT * FROM ?? WHERE username=?";
var table = ["user", req.body.username, "pass"];
query = mysql.format(query, table);
connection.query(query, function (err, rows) {
if (err) {
res.json({ "Error": true, "Message": "Query Issue" });
return;
}
if (rows.length == 0) {
res.json({ "Error": false, "Message": "User Doesn't Exist" });
return;
}
if (md5(req.body.pass) != rows[0].pass) {
res.json({ "Error": false, "Message": "Invalid Password" });
return;
}
res.json({ "Error": false, "Message": "Login Successful", "user_id": rows[0].user_id });
//connection.end();
});
});
router.post("/currentmodel", function (req, res) {
var query = "SELECT current_model FROM ?? WHERE user_id=?";
var table = ["model", req.body.user_id,];
query = mysql.format(query, table);
connection.query(query, function (err, rows) {
if (err) {
res.json({ "Error": true, "Message": "Error Retrieving Current Model" });
return;
}
if (rows[0] == null) {
res.json({ "Error": true, "Message": "No Model Entries Exist for this User" });
return;
}
res.json({ "Error": false, "Message": "Current Model Retrieved!", "current_model": rows[0] });
//connection.end();
});
});
router.post("/prevmodel", function (req, res) {
var query = "SELECT prev_model FROM ?? WHERE user_id=?";
var table = ["model", req.body.user_id,];
query = mysql.format(query, table);
connection.query(query, function (err, rows) {
if (err) {
res.json({ "Error": true, "Message": "Error Retrieving Current Model" });
return;
}
if (rows[0] == null) {
res.json({ "Error": true, "Message": "No Model Entries Exist for this User" });
return;
}
res.json({ "Error": false, "Message": "Prev Model Retrieved!", "prev_model": rows[0] });
//connection.end();
});
});
router.post("/updatemodel", function (req, res) {
var updatequery = "UPDATE model SET prev_model=current_model WHERE user_id=?";
var insert = "UPDATE model SET current_model=? WHERE user_id=?";
var updatetable = req.body.user_id;
var inserttable = [req.body.current_model, req.body.user_id];
async.series({
one: function (callback) {
setTimeout(function () {
updatequery = mysql.format(updatequery, updatetable);
pool.query(updatequery, function (err, rows) {
if (err) {
res.json({ "Error": true, "Message": "Update Fail: Error Retrieving Update Query" });
}
});
callback(null, 1);
}, 100);
},
two: function (callback) {
setTimeout(function () {
insert = mysql.format(insert, inserttable);
pool.query(insert, function (err, rows) {
if (err) {
res.json({ "Error": true, "Message": "Update Fail: Error Inserting to Table" })
}
});
callback(null, 2);
}, 200);
}
}, function (err, results) {
// results is now equal to: {one: 1, two: 2}
res.json({ "Error": false, "Message": "Update Successful" });
//connection.destroy();
});
});
}
module.exports = REST_ROUTER;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment