55 lines
1.5 KiB
JavaScript
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)
|
|
})
|
|
})
|
|
} |