const mysql = require('mysql');
|
|
|
|
const sanitizer = require('sanitizer');
|
|
|
|
var Promise = require('promise');
|
|
|
|
const con = mysql.createConnection({
|
|
host: "localhost",
|
|
user: "blog_user",
|
|
password: "password",
|
|
database: "blog_name"
|
|
});
|
|
|
|
con.connect(function(err) {
|
|
if (err) throw err;
|
|
console.log("Connected!");
|
|
});
|
|
|
|
/**
|
|
* Function used to query the database for records
|
|
*
|
|
* @param sqlStatement
|
|
* @returns {Array}
|
|
*/
|
|
var fetch = function(sqlStatement)
|
|
{
|
|
console.log("sql fetch method called");
|
|
return new Promise(function(resolve, reject)
|
|
{
|
|
con.query(sqlStatement, function (err, result)
|
|
{
|
|
if (err)
|
|
{
|
|
console.log(err);
|
|
reject();
|
|
}
|
|
console.log(result);
|
|
resolve(result);
|
|
});
|
|
});
|
|
|
|
};
|
|
|
|
module.exports=
|
|
{
|
|
/**
|
|
* Function used to use insert statements into the database
|
|
*
|
|
* Don't worry, the input gets sanitized
|
|
*
|
|
* @param sqlStatement
|
|
* @return the id of the new record - if there is one
|
|
*/
|
|
insert : function(sqlStatement)
|
|
{
|
|
con.query((sqlStatement), function (err, result)
|
|
{
|
|
if (err)
|
|
{
|
|
console.log(err);
|
|
return 0;
|
|
}
|
|
return result.insertId;
|
|
});
|
|
},
|
|
|
|
/**
|
|
* Not to be mistaken for getPostData() in @file utils/utils.js,
|
|
* this function extracts a post entry from the sql server
|
|
*
|
|
* @param requestURL url user used to request blog post
|
|
* @return {*} the entry found in the data base -- if any
|
|
*/
|
|
getPost : function(requestURL)
|
|
{
|
|
return new Promise(function(resolve, reject)
|
|
{
|
|
var splitURL = requestURL.split("/");
|
|
var q = "select * from categories where url='" + splitURL[1] + "'";
|
|
fetch(q).then(function (result_category)
|
|
{
|
|
console.log(result_category);
|
|
if(result_category.length != 0)
|
|
{
|
|
|
|
q = "select * from posts where category_id='" + result_category[0].category_id + "' and url='" + splitURL[2] + "'";
|
|
console.log(q);
|
|
fetch(q).then(function (result_posts)
|
|
{
|
|
console.log(result_posts);
|
|
if(result_posts != 0)
|
|
{
|
|
resolve(result_posts[0]);
|
|
}
|
|
else
|
|
{
|
|
resolve(0);
|
|
}
|
|
});
|
|
}
|
|
else
|
|
{
|
|
resolve(0);
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
},
|
|
/**
|
|
* Function used to retrieve all categories when making the sidebar
|
|
*
|
|
* @return {Promise<Response> | * | Array}
|
|
*/
|
|
getCategories: function()
|
|
{
|
|
var q = "select * from categories";
|
|
return fetch(q);
|
|
}
|
|
};
|