Added basic release and actor API.

This commit is contained in:
2020-05-20 01:11:32 +02:00
parent 6973d39cbd
commit 057362d011
18 changed files with 347 additions and 39 deletions

View File

@@ -1,31 +1,18 @@
'use strict';
const { fetchActors } = require('../actors');
const { fetchActor } = 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;
async function fetchActorApi(req, res) {
const actor = await fetchActor(req.params.actorId);
if (actorId || actorSlug) {
const actors = await fetchActors({
id: actorId,
slug: actorSlug,
});
if (actors.length > 0) {
res.send(actors[0]);
return;
}
res.status(404).send();
if (actor) {
res.send({ actor });
return;
}
const actors = await fetchActors(null, req.query.limit);
res.send(actors);
res.status(404).send({ actor: null });
}
module.exports = {
fetchActors: fetchActorsApi,
fetchActor: fetchActorApi,
};

View File

@@ -1,6 +1,17 @@
'use strict';
const { fetchReleases, searchReleases } = require('../releases');
const { fetchRelease, fetchReleases, searchReleases } = require('../releases');
async function fetchReleaseApi(req, res) {
const release = await fetchRelease(req.params.releaseId);
if (release) {
res.send({ release });
return;
}
res.status(404).send({ release: null });
}
async function fetchReleasesApi(req, res) {
const query = req.query.query || req.query.q;
@@ -9,9 +20,10 @@ async function fetchReleasesApi(req, res) {
? await searchReleases(query, req.query.limit)
: await fetchReleases(req.query.limit);
res.send(releases);
res.send({ releases });
}
module.exports = {
fetchRelease: fetchReleaseApi,
fetchReleases: fetchReleasesApi,
};

View File

@@ -15,9 +15,12 @@ const logger = require('../logger')(__filename);
const { ActorPlugins, SitePlugins, ReleasePlugins } = require('./plugins/plugins');
const {
fetchRelease,
fetchReleases,
} = require('./releases');
const { fetchActor } = require('./actors');
function initServer() {
const app = express();
const router = Router();
@@ -61,6 +64,9 @@ function initServer() {
router.use(bodyParser.json({ strict: false }));
router.get('/api/releases', fetchReleases);
router.get('/api/releases/:releaseId', fetchRelease);
router.get('/api/actors/:actorId', fetchActor);
router.get('*', (req, res) => {
res.render(path.join(__dirname, '../../assets/index.ejs'), {