function addUploadedFile(filepath, md5hash) { jfsdb.serialize(function() { var delstmt = jfsdb.prepare("delete from jottafiles where filepath=?"); delstmt.run(filepath); delstmt.finalize(); var stats = fs.statSync(filepath); var size = stats.size; var modified = stats.mtime; var insstmt = jfsdb.prepare("insert into jottafiles values(?,?,?,?)"); insstmt.run(filepath, md5hash, size, modified); insstmt.finalize(); }); }
statement.run(function (error) { if (error) { console.log(error); callback(this.changes); } else { callback(this.changes); } });
router.post('/upload', function (req, res) { var base64Data = req.body.image.replace(/^data:image\/png;base64,/, ''); ensureExists(__dirname + '/webcam', 0744, function(err) { if (err) throw err; }); require('fs').writeFile(path.join(__dirname, 'webcam') + '/'+req.body.tagID+'-'+(Math.floor(new Date().getTime() / 1000))+'.png', base64Data, 'base64', function(err) { console.log(err); }); var save = db.prepare('UPDATE takePhoto SET take = \'true\' WHERE tagID = ?'); save.run(req.body.tagID); save.finalize(); res.json({'done':'yes'}); });
// gestion de la route : /user/add app.post('/user/add/', upload.array(), function (req, res, next) { // Route user/add : /user/add, pour ajouter un utilisateur à la liste des utlisateurs var user = req.body; // Insertion des données dans la BD db.serialize(function() { db.run("CREATE TABLE IF NOT EXISTS users (nom TEXT, prenom TEXT, sexe TEXT, email TEXT)"); var stmt = db.prepare("INSERT INTO users VALUES (?, ?, ?, ?)"); stmt.run(user.nom, user.prenom, user.sexe, user.email); stmt.finalize(); }); console.log(req.body); res.json(req.body); });
db.serialize(function() { db.run("CREATE TABLE lorem (info TEXT)"); var stmt = db.prepare("INSERT INTO lorem VALUES (?)"); for (var i = 0; i < 10; i++) { stmt.run("Ipsum " + i); } stmt.finalize(); db.each("SELECT rowid AS id, info FROM lorem", function(err, row) { console.log(row.id + ": " + row.info); }); });
function markMilestoneAchieved(milestone, sound) { const timestamp = Date.now(); Logger.info(`Milestone ${milestone.id} (${milestone.count} clicks) reached! Entry being updated.`); Object.assign(milestone, { reached: 1, timestamp, sound_id: sound.id }); const query = db.prepare('UPDATE milestones SET reached = ?, timestamp = ?, sound_id = ? WHERE id = ?'); query.run(1, timestamp, sound.id, milestone.id, updateErr => { if (updateErr) { Logger.error(`An error occurred updating the milestone entry of milestone ${milestone.id}.`); Logger.error(updateErr); } const readableCount = milestone.count.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1.'); emitUpdate({ type: 'notification', notification: { text: `Milestone ${milestone.id} of ${readableCount} clicks has been reached!`, duration: 3 } }); return emitUpdate({ type: 'milestoneUpdate', milestone: milestone }); }); }
query(sql,params=[]){ if(sql.toLowerCase().indexOf("select")>=0){ return this.queryResult(sql,params); }else{ return new Promise( (resolve,reject)=>{ var statement=this.connection.prepare(sql); statement.run(params,function (error) { if (error) { console.error(error.message); reject(error); //throw error; }else{ var result={ "insertId":this.lastID, "affectedRows":this.changes, } resolve(result); } }) }) } }
query.run(data.id, deleteErr => { if (deleteErr) { Logger.error('An error occurred while deleting the database entry, deletion aborted.');
router.get('/takePhoto/:tagID', function (req, res) { db.get( 'SELECT \ tagID \ FROM takePhoto \ WHERE tagID = ? \ AND (((strftime(\'%s\', \'now\') - timestamp) / '+config.timeBase+')) < '+config.timeTakePhoto +' \ ORDER BY timestamp DESC \ LIMIT 1', req.params.tagID, function(err, row) { if (err) { throw err; } if (typeof row == 'undefined') { var take = db.prepare('INSERT INTO takePhoto VALUES (?, ?, \'false\')'); take.run(Math.round(Date.now() / 1000), req.params.tagID); take.finalize(); res.json({'save': 'yes'}); } else { res.json({'save': 'no'}); } }); });
apiRouter.delete('/admin/milestones/delete', (req, res) => { const data = req.body; if (!data.id) { return res.status(400).json({ code: 400, name: 'Invalid milestone', message: 'Milestone ID must be provided.' }); } const deletedMilestone = milestones.find(ms => ms.id === data.id); Logger.info(`Milestone ${deletedMilestone.id} (${deletedMilestone.count} clicks) now being deleted.`); const query = db.prepare('DELETE FROM milestones WHERE id = ?'); query.run(data.id, deleteErr => { if (deleteErr) { Logger.error('An error occurred while deleting the database entry, deletion aborted.'); Logger.error(deleteErr); return res.status(500).json({ code: 500, name: 'Serverside error', message: 'Please check the server console.' }); } Logger.info('(1/2): Database entry successfully deleted.'); milestones.splice(milestones.findIndex(ms => ms.id === deletedMilestone.id), 1); Logger.info('(2/2): Milestone cache entry successfully deleted.'); emitUpdate({ type: 'milestoneDelete', milestone: deletedMilestone }); return res.json({ code: 200, message: 'Milestone successfully deleted.', milestone: deletedMilestone }); }); });
// gestion de la route : /user/add/multi app.post('/user/add/multi', upload.array(), function (req, res, next) { // Route user/add : /user/add, pour ajouter plusieurs utilisateurs à la liste des utlisateurs var users = req.body; for(var id in users){ users[id] = JSON.parse(users[id]); // Insertion des données dans la BD db.serialize(function() { db.run("CREATE TABLE IF NOT EXISTS users (nom TEXT, prenom TEXT, sexe TEXT, email TEXT)"); var stmt = db.prepare("INSERT INTO users VALUES (?, ?, ?, ?)"); stmt.run(users[id].nom, users[id].prenom, users[id].sexe, users[id].email); stmt.finalize(); }); } console.log(users); res.json(users); });
function isFileUploaded(filepath, callback) { jfsdb.serialize(function() { var stmt = jfsdb.prepare("select * from jottafiles where filepath=?"); stmt.all(filepath, function(err, rows) { var exists = false; if (rows) rows.forEach(function (row) { if (row) { var stats = fs.statSync(filepath); var size = stats.size; var modified = stats.mtime.getTime(); // console.log("size: db=" + row.size + ", file=" + size); // console.log("mod: db=" + row.modified + ", file=" + modified); // console.log("md5: db=" + row.md5hash + ", file=" + md5hash); // console.log("quick: " + quick); if (row.size == size && row.modified == modified) // && (quick || row.md5hash === md5hash)) exists = true; } }); callback(exists); }); stmt.finalize(); }); }
statement.run(function (error) { if (error) { console.log(error); callback(this.changes); } else { callback(this.changes); } });
statement.run(function (error) { if (error) { console.log(error); callback(this.changes); } else { callback(this.changes); } });