Files
alexis/lib/webserver.js
2023-08-01 12:47:58 +02:00

55 lines
1.5 KiB
JavaScript

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