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