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