Added WIP media module. Returning releases from release search database function. Fixed page loop in update module.

This commit is contained in:
2020-03-29 04:00:46 +02:00
parent 6d9f96c5d5
commit 93d4f0ff1a
19 changed files with 316 additions and 239 deletions

View File

@@ -1,80 +1,17 @@
'use strict';
const {
fetchReleases,
fetchActorReleases,
fetchNetworkReleases,
fetchSiteReleases,
fetchTagReleases,
} = require('../releases');
const { fetchReleases, searchReleases } = require('../releases');
async function fetchReleasesApi(req, res) {
const releases = await fetchReleases({}, req.query);
const query = req.query.query || req.query.q;
res.send(releases);
}
async function fetchReleaseByIdApi(req, res) {
const [release] = await fetchReleases({
id: req.params.releaseId,
});
res.send(release);
}
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({
id: actorId,
slug: actorSlug,
}, req.query);
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({
id: networkId,
slug: networkSlug,
}, req.query);
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({
id: siteId,
slug: siteSlug,
}, req.query);
res.send(releases);
}
async function fetchTagReleasesApi(req, res) {
const tagId = typeof req.params.tagId === 'number' ? req.params.tagId : null;
const tagSlug = typeof req.params.tagId === 'string' ? req.params.tagId : null;
const releases = await fetchTagReleases({
id: tagId,
slug: tagSlug,
}, req.query);
const releases = query
? await searchReleases(query, req.query.limit)
: await fetchReleases(req.query.limit);
res.send(releases);
}
module.exports = {
fetchReleases: fetchReleasesApi,
fetchReleaseById: fetchReleaseByIdApi,
fetchActorReleases: fetchActorReleasesApi,
fetchNetworkReleases: fetchNetworkReleasesApi,
fetchSiteReleases: fetchSiteReleasesApi,
fetchTagReleases: fetchTagReleasesApi,
};

View File

@@ -16,22 +16,8 @@ const { ActorPlugins, SitePlugins, ReleasePlugins } = require('./plugins/plugins
const {
fetchReleases,
fetchReleaseById,
fetchActorReleases,
fetchNetworkReleases,
fetchSiteReleases,
fetchTagReleases,
} = require('./releases');
const {
fetchNetworks,
fetchNetworksFromReleases,
} = require('./networks');
const { fetchActors } = require('./actors');
const { fetchSites } = require('./sites');
const { fetchTags } = require('./tags');
function initServer() {
const app = express();
const router = Router();
@@ -75,24 +61,6 @@ function initServer() {
router.use(bodyParser.json({ strict: false }));
router.get('/api/releases', fetchReleases);
router.get('/api/releases/:releaseId', fetchReleaseById);
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);
router.get('/api/sites', fetchSites);
router.get('/api/sites/:siteId', fetchSites);
router.get('/api/sites/:siteId/releases', fetchSiteReleases);
router.get('/api/tags', fetchTags);
router.get('/api/tags/:tagId', fetchTags);
router.get('/api/tags/:tagId/releases', fetchTagReleases);
router.get('*', (req, res) => {
res.render(path.join(__dirname, '../../assets/index.ejs'), {