Added actors page. Added site logos with overview on network page.

This commit is contained in:
2019-11-10 04:20:22 +01:00
parent 76618cee83
commit a9b91ff76c
44 changed files with 1065 additions and 13 deletions

16
src/web/actors.js Normal file
View File

@@ -0,0 +1,16 @@
'use strict';
const { fetchActors } = require('../actors');
async function fetchActorsApi(req, res) {
const actorId = typeof req.params.actorId === 'number' ? req.params.actorId : null;
const actorSlug = typeof req.params.actorId === 'string' ? req.params.actorId : null;
const actors = await fetchActors(actorId, actorSlug);
res.send(actors);
}
module.exports = {
fetchActors: fetchActorsApi,
};

23
src/web/networks.js Normal file
View File

@@ -0,0 +1,23 @@
'use strict';
const { fetchNetworks, fetchNetworksFromReleases } = require('../networks');
async function fetchNetworksApi(req, res) {
const networkId = typeof req.params.networkId === 'number' ? req.params.networkId : null;
const networkSlug = typeof req.params.networkId === 'string' ? req.params.networkId : null;
const networks = await fetchNetworks(networkId, networkSlug);
res.send(networks);
}
async function fetchNetworksFromReleasesApi(req, res) {
const networks = await fetchNetworksFromReleases();
res.send(networks);
}
module.exports = {
fetchNetworks: fetchNetworksApi,
fetchNetworksFromReleases: fetchNetworksFromReleasesApi,
};

View File

@@ -1,6 +1,11 @@
'use strict';
const { fetchReleases, fetchNetworkReleases, fetchSiteReleases } = require('../releases');
const {
fetchReleases,
fetchActorReleases,
fetchNetworkReleases,
fetchSiteReleases,
} = require('../releases');
async function fetchReleasesApi(req, res) {
const releases = await fetchReleases(req.params.releaseId);
@@ -8,6 +13,15 @@ async function fetchReleasesApi(req, res) {
res.send(releases);
}
async function fetchActorReleasesApi(req, res) {
const actorId = Number.isInteger(Number(req.params.actorId)) ? Number(req.params.actorId) : null;
const actorSlug = typeof req.params.actorId === 'string' ? req.params.actorId : null;
const releases = await fetchActorReleases(actorId, actorSlug);
res.send(releases);
}
async function fetchNetworkReleasesApi(req, res) {
const networkId = typeof req.params.networkId === 'number' ? req.params.networkId : null;
const networkSlug = typeof req.params.networkId === 'string' ? req.params.networkId : null;
@@ -28,6 +42,7 @@ async function fetchSiteReleasesApi(req, res) {
module.exports = {
fetchReleases: fetchReleasesApi,
fetchActorReleases: fetchActorReleasesApi,
fetchNetworkReleases: fetchNetworkReleasesApi,
fetchSiteReleases: fetchSiteReleasesApi,
};

View File

@@ -6,8 +6,19 @@ 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 {
fetchReleases,
fetchActorReleases,
fetchNetworkReleases,
fetchSiteReleases,
} = require('./releases');
const {
fetchNetworks,
fetchNetworksFromReleases,
} = require('./networks');
const { fetchActors } = require('./actors');
const { fetchSites } = require('./sites');
function initServer() {
@@ -16,12 +27,21 @@ function initServer() {
router.use('/media', express.static(config.photoPath));
router.use(express.static('public'));
router.use('/img', (req, res) => {
res.status(404).send();
});
router.use(bodyParser.json({ strict: false }));
router.get('/api/releases', fetchReleases);
router.get('/api/releases/:releaseId', fetchReleases);
router.get('/api/releases/networks', fetchNetworksFromReleases);
router.get('/api/actors', fetchActors);
router.get('/api/actors/:actorId', fetchActors);
router.get('/api/actors/:actorId/releases', fetchActorReleases);
router.get('/api/networks', fetchNetworks);
router.get('/api/networks/:networkId', fetchNetworks);
router.get('/api/networks/:networkId/releases', fetchNetworkReleases);

23
src/web/sites.js Normal file
View File

@@ -0,0 +1,23 @@
'use strict';
const { fetchSites, fetchSitesFromReleases } = require('../networks');
async function fetchSitesApi(req, res) {
const siteId = typeof req.params.siteId === 'number' ? req.params.siteId : null;
const siteSlug = typeof req.params.siteId === 'string' ? req.params.siteId : null;
const sites = await fetchSites(siteId, siteSlug);
res.send(sites);
}
async function fetchSitesFromReleasesApi(req, res) {
const sites = await fetchSitesFromReleases();
res.send(sites);
}
module.exports = {
fetchSites: fetchSitesApi,
fetchSitesFromReleases: fetchSitesFromReleasesApi,
};