Created
June 27, 2017 01:38
-
-
Save wilandm/c0ef9c6feb6c4749093a101525958260 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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