'use strict' const express = require('express') const app = express() // routes const all = require('./components/all/route') const todos = require('./components/todo/route') const shopping_list = require('./components/shopping_list/route') const timeline = require('./components/timeline/route') const network = require('./components/network/route') const devices = require('./components/devices/route') const household = require('./components/household/route') const notifications = require('./components/notifications/route') const user_data = require('./components/user_data/route') const wakewords = require('./components/wakewords/route') module.exports = (logger, port, store, Proxy) => { return new Promise((resolve, reject) => { // collect routes const components = [ all, todos, shopping_list, timeline, network, devices, household, notifications, user_data, wakewords, ] // register routes components.forEach(component => { Object.keys(component).forEach(route => { logger.log('ROUTES', `(webserver) Register route ${route}`) app.get(route, (req, res) => { component[route](store, req.query, (data) => { res.send(data) }, Proxy) }) }) }) // listen on errors app.on('error', reject) // start webserver app.listen(port, () => { logger.log('WEBSERVER', `Webserver started: http://localhost:${port}/`) resolve(true) }) }) }