traxxx/src/web/releases.js

50 lines
1.1 KiB
JavaScript
Raw Normal View History

'use strict';
2020-05-19 23:11:32 +00:00
const { fetchRelease, fetchReleases, searchReleases } = require('../releases');
async function fetchReleaseApi(req, res, type = 'scene') {
const release = await fetchRelease(req.params.releaseId, type);
2020-05-19 23:11:32 +00:00
if (release) {
res.send({ [type]: release });
2020-05-19 23:11:32 +00:00
return;
}
res.status(404).send({ [type]: null });
2020-05-19 23:11:32 +00:00
}
async function fetchReleasesApi(req, res, type = 'scene') {
const query = req.query.query || req.query.q;
2019-05-18 23:34:08 +00:00
const releases = query
? await searchReleases(query, req.query.limit, type)
: await fetchReleases(req.query.limit, type);
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 = {
2020-05-19 23:11:32 +00:00
fetchRelease: fetchReleaseApi,
fetchReleases: fetchReleasesApi,
fetchScene: fetchSceneApi,
fetchMovie: fetchMovieApi,
fetchScenes: fetchScenesApi,
fetchMovies: fetchMoviesApi,
};