UNPKG

@luminati-io/mountebank

Version:

Over the wire test doubles

59 lines (49 loc) 1.47 kB
'use strict'; const date = require('../util/date.js'); /** * The controller that returns the base mountebank hypermedia * @module */ /** * Creates the home controller * @param {Object} releases - The releases.json file * @returns {Object} The controller */ function create (releases) { function createNotice (release) { return { version: release.version, when: date.howLongAgo(release.date) }; } function isRecent (notice) { return notice.when !== ''; } /** * The function that responds to GET / * @memberOf module:controllers/homeController# * @param {Object} request - the HTTP request * @param {Object} response - the HTTP response */ function get (request, response) { const hypermedia = { _links: { imposters: { href: '/imposters' }, config: { href: '/config' }, logs: { href: '/logs' } } }, notices = releases.map(createNotice).filter(isRecent), viewNotices = []; if (notices.length > 0) { notices.reverse(); viewNotices.push(notices[0]); } response.format({ json: () => { response.send(hypermedia); }, html: () => { response.render('index', { notices: viewNotices }); } }); } return { get }; } module.exports = { create };