Added release type distinction to REST API.

This commit is contained in:
2020-05-20 01:38:58 +02:00
parent 057362d011
commit b6691e1991
5 changed files with 137 additions and 73 deletions

View File

@@ -2,28 +2,48 @@
const { fetchRelease, fetchReleases, searchReleases } = require('../releases');
async function fetchReleaseApi(req, res) {
const release = await fetchRelease(req.params.releaseId);
async function fetchReleaseApi(req, res, type = 'scene') {
const release = await fetchRelease(req.params.releaseId, type);
if (release) {
res.send({ release });
res.send({ [type]: release });
return;
}
res.status(404).send({ release: null });
res.status(404).send({ [type]: null });
}
async function fetchReleasesApi(req, res) {
async function fetchReleasesApi(req, res, type = 'scene') {
const query = req.query.query || req.query.q;
const releases = query
? await searchReleases(query, req.query.limit)
: await fetchReleases(req.query.limit);
? await searchReleases(query, req.query.limit, type)
: await fetchReleases(req.query.limit, type);
res.send({ releases });
res.send({ [`${type}s`]: releases });
}
async function fetchSceneApi(req, res) {
return fetchReleaseApi(req, res, 'scene');
}
async function fetchScenesApi(req, res) {
return fetchReleasesApi(req, res, 'scene');
}
async function fetchMovieApi(req, res) {
return fetchReleaseApi(req, res, 'movie');
}
async function fetchMoviesApi(req, res) {
return fetchReleasesApi(req, res, 'movie');
}
module.exports = {
fetchRelease: fetchReleaseApi,
fetchReleases: fetchReleasesApi,
fetchScene: fetchSceneApi,
fetchMovie: fetchMovieApi,
fetchScenes: fetchScenesApi,
fetchMovies: fetchMoviesApi,
};