'use strict'; const express = require('express'); const logger = require('../logger'); const { port } = require('../config'); const app = express(); require('./middleware')(app); app.use('/', require('./routes')); // eslint-disable-next-line no-unused-vars app.use((err, req, res, next) => res.sendStatus(err.status || 500)); let server; function start() { return new Promise((resolve, reject) => { if (server) { reject('Server has already been started'); return; } try { server = app.listen(port, () => { logger.info(`Server running on port ${port}...`); resolve(app); }); } catch (e) { reject(e); } }); } function stop() { return new Promise((resolve, reject) => { if (!server) { reject('Server was not started'); return; } server.close(); server = undefined; resolve(); }); } module.exports = { start, stop, };