forked from DebaucheryLibrarian/traxxx
50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
const { fetchRelease, fetchReleases, searchReleases } = require('../releases');
|
|
|
|
async function fetchReleaseApi(req, res, type = 'scene') {
|
|
const release = await fetchRelease(req.params.releaseId, type);
|
|
|
|
if (release) {
|
|
res.send({ [type]: release });
|
|
return;
|
|
}
|
|
|
|
res.status(404).send({ [type]: null });
|
|
}
|
|
|
|
async function fetchReleasesApi(req, res, type = 'scene') {
|
|
const query = req.query.query || req.query.q;
|
|
|
|
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 = {
|
|
fetchRelease: fetchReleaseApi,
|
|
fetchReleases: fetchReleasesApi,
|
|
fetchScene: fetchSceneApi,
|
|
fetchMovie: fetchMovieApi,
|
|
fetchScenes: fetchScenesApi,
|
|
fetchMovies: fetchMoviesApi,
|
|
};
|