UNPKG

timers3000

Version:

Provides a graphical interface in your browser to create and manage incremental timers for your daily tasks.

69 lines (59 loc) 1.81 kB
var pantexdb = require('pantexdb') , utils = require('../../lib/timerUtils.js'); var db = new pantexdb(process.env.TIMERDB, 'timers3000db', ["sessions"], false).open(); /** * Creates a new session record * Sessions are saved when a timer is stopped. * @param {String} timerId the timer's id * @param {Integer} time the sessions duration */ exports.create = function(timerId, time, sessiondate, done){ var session = {"timer": timerId, "time": time, "date": sessiondate}; db.sessions.save(session,function(err,sess){ if(err)console.log(err) done(); }); }; exports.delete = function(id, done){ db.sessions.findOne({_id:id},function(err, session){ db.sessions.delete({_id:id}, function(err,num){ if(err) console.warn(err); return done(session); }); }); }; exports.getAll = function(done){ db.sessions.find({},function(err,sessions){ if(err){ console.log(err); done([]); }else{ done(sessions) } }); }; exports.updateTime = function(id, time, done){ db.sessions.findOne({"_id":id}, function(err, session){ var diff = session.time - time; db.sessions.update(id,{time:time}, function(err, usession){ if(err)console.log(err); return done(usession, diff); }); }); } /** * Finds all sessions to the specified timer * @param {String} id The timers id * @param {Function} done the callback function */ exports.getAllForTimer = function(id, done){ db.sessions.find({"timer":id},function(err, sessions){ if(err || !sessions){ return done(err,null); }else{ return done(null,sessions.sort(utils.predicatBy("date", -1))); } }); }