pomodoro/server/services/pomodoros/middleware.js
Linus Miller 47ce0a2a33 Huge commit
- Update all deps
 - Apply midwest changes
 - Convert all templates to JSX
 - Preact instead of Marko
 - Babel & Eslint
2016-11-10 14:34:44 +01:00

49 lines
1.1 KiB
JavaScript

'use strict';
const rest = require('midwest/factories/rest');
const formatQuery = require('midwest/factories/format-query');
const paginate = require('midwest/factories/paginate');
const Pomodoro = require('./model');
function create(req, res, next) {
Pomodoro.create(Object.assign(req.body, {
user: req.user && req.user.id || '57b04f50a1eaaf354f3b96a6',
ip: req.ip,
userAgent: req.headers['user-agent'],
}), (err, pomodoro) => {
res.locals.pomodoro = pomodoro;
next(err);
});
}
function end(req, res, next) {
Pomodoro.findByIdAndUpdate(req.params.id, { endDate: new Date() }, (err, pomodoro) => {
if (err) return next(err);
res.locals.pomodoro = pomodoro;
next();
});
}
function getActive(req, res, next) {
Pomodoro.find({ user: req.user.id, endDate: { $eq: null } }, (err, pomodoros) => {
res.locals.pomodoros = pomodoros;
return next(err);
});
}
module.exports = Object.assign(rest(Pomodoro), {
create,
end,
formatQuery: formatQuery(['limit', 'sort'], {
endDate: 'exists',
}),
getActive,
paginate: paginate(Pomodoro, 50),
});