traxxx/src/web/releases.js

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,
};