traxxx/src/web/server.js

45 lines
1.4 KiB
JavaScript
Raw Normal View History

'use strict';
const path = require('path');
const config = require('config');
const express = require('express');
const Router = require('express-promise-router');
const bodyParser = require('body-parser');
const { fetchReleases, fetchNetworkReleases, fetchSiteReleases } = require('./releases');
const { fetchNetworks, fetchNetworksFromReleases } = require('./networks');
const { fetchSites } = require('./sites');
function initServer() {
const app = express();
const router = Router();
router.use('/media', express.static(config.photoPath));
router.use(express.static('public'));
router.use(bodyParser.json({ strict: false }));
2019-05-08 03:50:13 +00:00
router.get('/api/releases', fetchReleases);
router.get('/api/releases/:releaseId', fetchReleases);
router.get('/api/releases/networks', fetchNetworksFromReleases);
router.get('/api/networks', fetchNetworks);
router.get('/api/networks/:networkId', fetchNetworks);
router.get('/api/networks/:networkId/releases', fetchNetworkReleases);
router.get('/api/sites', fetchSites);
router.get('/api/sites/:siteId', fetchSites);
router.get('/api/sites/:siteId/releases', fetchSiteReleases);
router.get('*', (req, res) => {
res.sendFile(path.join(__dirname, '../../public/index.html'));
});
app.use(router);
app.listen(config.web.port, () => {
console.log(`Web server listening on port ${config.web.port}`);
});
}
module.exports = initServer;