2019-05-06 00:01:57 +00:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
const path = require('path');
|
|
|
|
const config = require('config');
|
|
|
|
const express = require('express');
|
|
|
|
const Router = require('express-promise-router');
|
2019-06-03 03:31:38 +00:00
|
|
|
const bodyParser = require('body-parser');
|
2019-05-06 00:01:57 +00:00
|
|
|
|
2019-11-10 03:20:22 +00:00
|
|
|
const {
|
|
|
|
fetchReleases,
|
|
|
|
fetchActorReleases,
|
|
|
|
fetchNetworkReleases,
|
|
|
|
fetchSiteReleases,
|
|
|
|
} = require('./releases');
|
|
|
|
|
|
|
|
const {
|
|
|
|
fetchNetworks,
|
|
|
|
fetchNetworksFromReleases,
|
|
|
|
} = require('./networks');
|
|
|
|
|
|
|
|
const { fetchActors } = require('./actors');
|
2019-11-09 03:43:58 +00:00
|
|
|
const { fetchSites } = require('./sites');
|
2019-05-06 00:01:57 +00:00
|
|
|
|
|
|
|
function initServer() {
|
|
|
|
const app = express();
|
|
|
|
const router = Router();
|
|
|
|
|
2019-11-11 02:20:00 +00:00
|
|
|
router.use('/media', express.static(config.media.path));
|
2019-06-03 03:31:38 +00:00
|
|
|
router.use(express.static('public'));
|
2019-11-10 03:20:22 +00:00
|
|
|
|
|
|
|
router.use('/img', (req, res) => {
|
|
|
|
res.status(404).send();
|
|
|
|
});
|
|
|
|
|
2019-06-03 03:31:38 +00:00
|
|
|
router.use(bodyParser.json({ strict: false }));
|
2019-05-08 03:50:13 +00:00
|
|
|
|
2019-06-03 03:31:38 +00:00
|
|
|
router.get('/api/releases', fetchReleases);
|
|
|
|
router.get('/api/releases/:releaseId', fetchReleases);
|
2019-11-09 03:43:58 +00:00
|
|
|
router.get('/api/releases/networks', fetchNetworksFromReleases);
|
|
|
|
|
2019-11-10 03:20:22 +00:00
|
|
|
router.get('/api/actors', fetchActors);
|
|
|
|
router.get('/api/actors/:actorId', fetchActors);
|
|
|
|
router.get('/api/actors/:actorId/releases', fetchActorReleases);
|
|
|
|
|
2019-11-09 03:43:58 +00:00
|
|
|
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);
|
2019-05-06 00:01:57 +00:00
|
|
|
|
2019-06-03 03:31:38 +00:00
|
|
|
router.get('*', (req, res) => {
|
|
|
|
res.sendFile(path.join(__dirname, '../../public/index.html'));
|
|
|
|
});
|
2019-05-06 00:01:57 +00:00
|
|
|
|
|
|
|
app.use(router);
|
|
|
|
|
|
|
|
app.listen(config.web.port, () => {
|
|
|
|
console.log(`Web server listening on port ${config.web.port}`);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = initServer;
|