- 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);
- }
- };
|