'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), });