Removed outdated movie releases from API. Added API endpoint for scene posters.

This commit is contained in:
DebaucheryLibrarian
2020-12-19 00:40:36 +01:00
parent 7bc4a955ba
commit 0d41fb48dc
4 changed files with 37 additions and 40 deletions

View File

@@ -1,49 +1,46 @@
'use strict';
const { fetchRelease, fetchReleases, searchReleases } = require('../releases');
const config = require('config');
const path = require('path');
async function fetchReleaseApi(req, res, type = 'scene') {
const release = await fetchRelease(req.params.releaseId, type);
const { fetchScene, fetchScenes, searchScenes } = require('../releases');
async function fetchSceneApi(req, res) {
const release = await fetchScene(req.params.releaseId);
if (release) {
res.send({ [type]: release });
res.send({ scene: 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');
res.status(404).send({ scene: null });
}
async function fetchScenesApi(req, res) {
return fetchReleasesApi(req, res, 'scene');
const query = req.query.query || req.query.q;
const releases = query
? await searchScenes(query, req.query.limit)
: await fetchScenes(req.query.limit);
res.send({ scenes: releases });
}
async function fetchMovieApi(req, res) {
return fetchReleaseApi(req, res, 'movie');
}
async function fetchScenePosterApi(req, res) {
const scene = await fetchScene(req.params.releaseId);
const posterPath = scene?.poster?.path;
async function fetchMoviesApi(req, res) {
return fetchReleasesApi(req, res, 'movie');
if (posterPath) {
res.sendFile(path.resolve(config.media.path, posterPath));
return;
}
res.status(404).send();
}
module.exports = {
fetchRelease: fetchReleaseApi,
fetchReleases: fetchReleasesApi,
fetchScene: fetchSceneApi,
fetchMovie: fetchMovieApi,
fetchScenes: fetchScenesApi,
fetchMovies: fetchMoviesApi,
fetchScenePoster: fetchScenePosterApi,
};