var mysql = require('mysql'); const env = process.env.NODE_ENV || 'development'; const config = require(__dirname + '/../../config/config.json')[env]; var pool = mysql.createPool({ connectionLimit : 20, host : config.host, user : config.username, password : config.password, database : config.database }); pool.on('acquire', function (connection) { console.log('Connection %d acquired', connection.threadId); }); exports.findByName = function(deviceName, cb) { process.nextTick(function() { console.log("findByName(" +deviceName + "," + days +")" ); pool.getConnection(function(err, con) { if (err) throw err; // not connected! con.query("SELECT * FROM devices WHERE (name=? OR ? IS NULL) )", [deviceName, deviceName], (err, data) => { con.release(); if (!err) { cb(null, data); } else { cb(new Error('SQL Error: ' + err)); } }); }); }); } exports.insert = function(deviceName, baseurl, apikey,lastseen, cb){ var params = [deviceName, baseurl, apikey,lastseen]; let sql = `INSERT INTO devices (name,baseurl,apikey,lastseen,timestamp) VALUES (?,?,?,?,NOW());`; pool.getConnection(function(err, con) { if (err) throw err; // not connected! con.query(sql, params,(err, r) => { con.release(); //if(!cb) {return;} if (err) { console.log("error: ", err); cb && cb(new Error('SQL Error: ' + err)); }else{ console.log("inserted record: ", { id: r.insertId}); cb && cb(null, { id: r.insertId, ...params }); } }); }); } exports.update = function(deviceName, baseurl, cb){ var params = [deviceName, baseurl, apikey,lastseen]; let sql = `INSERT INTO devices (name,baseurl,apikey,lastseen,timestamp) VALUES (?,?,?,?,NOW());`; pool.getConnection(function(err, con) { if (err) throw err; // not connected! con.query(sql, params,(err, r) => { con.release(); //if(!cb) {return;} if (err) { console.log("error: ", err); cb && cb(new Error('SQL Error: ' + err)); }else{ console.log("inserted record: ", { id: r.insertId}); cb && cb(null, { id: r.insertId, ...params }); } }); }); }