const { validateUser } = require('../data/users') const { compose, curry, objOf } = require('crocks') module.exports = ({ config, express, jwt, knex }) => { const { jwtSecret } = config const router = express.Router() const setCookie = res => payload => { res.cookie('token', jwt.sign(payload, jwtSecret)) res.redirect('/') } const render = curry( (res, locals) => res.render('login', locals) ) router.get('/', (req, res) => { render(res, {}) }) router.post('/', (req, res) => { const { body } = req validateUser({ knex }, body) .fork( compose(render(res), objOf('flash')), setCookie(res) ) }) router.get('/logout', (req, res) => { res.redirect('/') }) return router }