const mysql = require('mysql');
							 | 
						|
								
							 | 
						|
								const sanitizer = require('sanitizer');
							 | 
						|
								
							 | 
						|
								var Promise = require('promise');
							 | 
						|
								
							 | 
						|
								const con = mysql.createConnection({
							 | 
						|
								    host: "localhost",
							 | 
						|
								    user: "trendingUser",
							 | 
						|
								    password: "password",
							 | 
						|
								    database: "googleTrends"
							 | 
						|
								});
							 | 
						|
								
							 | 
						|
								con.connect(function(err) {
							 | 
						|
								    if (err) throw err;
							 | 
						|
								    console.log("Connected to database!");
							 | 
						|
								});
							 | 
						|
								
							 | 
						|
								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)
							 | 
						|
								        {
							 | 
						|
								            return new Promise(function(resolve, reject)
							 | 
						|
								            {
							 | 
						|
								                con.query(sanitizer.sanitize(sqlStatement), function (err, result)
							 | 
						|
								                {
							 | 
						|
								                    if (err)
							 | 
						|
								                    {
							 | 
						|
								                        console.log(err);
							 | 
						|
								                        resolve(0);
							 | 
						|
								                    }
							 | 
						|
								                    resolve(result.insertId);
							 | 
						|
								                });
							 | 
						|
								            })
							 | 
						|
								        },
							 | 
						|
								
							 | 
						|
								        /**
							 | 
						|
								         * Insert all of the user's data into the sql database
							 | 
						|
								         * @param player
							 | 
						|
								         */
							 | 
						|
								        insertData : function(player)
							 | 
						|
								        {
							 | 
						|
								            return new Promise(function(resolve, reject)
							 | 
						|
								            {
							 | 
						|
								                var q = "insert into users(name) values('" + player.name + "')";
							 | 
						|
								                this.insert(q).then(function(keyId)
							 | 
						|
								                {
							 | 
						|
								                    player.log.forEach(function(data)
							 | 
						|
								                    {
							 | 
						|
								                        var q2 = "insert into data(user_id, word, score) values " +
							 | 
						|
								                            "('" + keyId + "','" + data.word + "','" + data.score + "')";
							 | 
						|
								
							 | 
						|
								                        this.insert(q2);
							 | 
						|
								                    });
							 | 
						|
								                    resolve();
							 | 
						|
								                })
							 | 
						|
								            })
							 | 
						|
								        },
							 | 
						|
								
							 | 
						|
								        dumpRoom: function(room)
							 | 
						|
								        {
							 | 
						|
								            room.users.forEach(function(user)
							 | 
						|
								            {
							 | 
						|
								                this.insertData(user);
							 | 
						|
								            });
							 | 
						|
								        }
							 | 
						|
								    };
							 |