Added network page and sites back-end. Split release tiles into own component.

This commit is contained in:
2019-11-09 04:43:58 +01:00
parent 708f704d1b
commit 82c9bc664a
13 changed files with 284 additions and 397 deletions

View File

@@ -1,6 +1,6 @@
'use strict';
const { fetchReleases } = require('../releases');
const { fetchReleases, fetchNetworkReleases, fetchSiteReleases } = require('../releases');
async function fetchReleasesApi(req, res) {
const releases = await fetchReleases(req.params.releaseId);
@@ -8,6 +8,26 @@ async function fetchReleasesApi(req, res) {
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;
const releases = await fetchNetworkReleases(networkId, networkSlug);
res.send(releases);
}
async function fetchSiteReleasesApi(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 releases = await fetchSiteReleases(siteId, siteSlug);
res.send(releases);
}
module.exports = {
fetchReleases: fetchReleasesApi,
fetchNetworkReleases: fetchNetworkReleasesApi,
fetchSiteReleases: fetchSiteReleasesApi,
};

View File

@@ -6,7 +6,9 @@ const express = require('express');
const Router = require('express-promise-router');
const bodyParser = require('body-parser');
const { fetchReleases } = require('./releases');
const { fetchReleases, fetchNetworkReleases, fetchSiteReleases } = require('./releases');
const { fetchNetworks, fetchNetworksFromReleases } = require('./networks');
const { fetchSites } = require('./sites');
function initServer() {
const app = express();
@@ -18,6 +20,15 @@ function initServer() {
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'));