Don't fail request when plex failes existance check

This commit is contained in:
2022-01-03 19:28:09 +01:00
parent d8985aaff7
commit 554f292e4c

View File

@@ -1,17 +1,19 @@
const configuration = require('src/config/configuration').getInstance(); const configuration = require("src/config/configuration").getInstance();
const TMDB = require('src/tmdb/tmdb'); const TMDB = require("src/tmdb/tmdb");
const Plex = require('src/plex/plex'); const Plex = require("src/plex/plex");
const tmdb = new TMDB(configuration.get('tmdb', 'apiKey')); const tmdb = new TMDB(configuration.get("tmdb", "apiKey"));
const plex = new Plex(configuration.get('plex', 'ip')); const plex = new Plex(configuration.get("plex", "ip"));
function handleError(error, res) { function handleError(error, res) {
const { status, message } = error; const { status, message } = error;
if (status && message) { if (status && message) {
res.status(status).send({ success: false, message }) res.status(status).send({ success: false, message });
} else { } else {
console.log('caught movieinfo controller error', error) console.log("caught movieinfo controller error", error);
res.status(500).send({ message: 'An unexpected error occured while requesting movie info'}) res.status(500).send({
message: "An unexpected error occured while requesting movie info"
});
} }
} }
@@ -25,31 +27,44 @@ async function movieInfoController(req, res) {
const movieId = req.params.id; const movieId = req.params.id;
let { credits, release_dates, check_existance } = req.query; let { credits, release_dates, check_existance } = req.query;
credits && credits.toLowerCase() === 'true' ? credits = true : credits = false credits && credits.toLowerCase() === "true"
release_dates && release_dates.toLowerCase() === 'true' ? release_dates = true : release_dates = false ? (credits = true)
check_existance && check_existance.toLowerCase() === 'true' ? check_existance = true : check_existance = false : (credits = false);
release_dates && release_dates.toLowerCase() === "true"
? (release_dates = true)
: (release_dates = false);
check_existance && check_existance.toLowerCase() === "true"
? (check_existance = true)
: (check_existance = false);
let tmdbQueue = [tmdb.movieInfo(movieId)] let tmdbQueue = [tmdb.movieInfo(movieId)];
if (credits) if (credits) tmdbQueue.push(tmdb.movieCredits(movieId));
tmdbQueue.push(tmdb.movieCredits(movieId)) if (release_dates) tmdbQueue.push(tmdb.movieReleaseDates(movieId));
if (release_dates)
tmdbQueue.push(tmdb.movieReleaseDates(movieId))
try { try {
const [ Movie, Credits, ReleaseDates ] = await Promise.all(tmdbQueue) const [Movie, Credits, ReleaseDates] = await Promise.all(tmdbQueue);
const movie = Movie.createJsonResponse() const movie = Movie.createJsonResponse();
if (Credits) if (Credits) movie.credits = Credits.createJsonResponse();
movie.credits = Credits.createJsonResponse()
if (ReleaseDates) if (ReleaseDates)
movie.release_dates = ReleaseDates.createJsonResponse().results movie.release_dates = ReleaseDates.createJsonResponse().results;
if (check_existance) if (check_existance) {
movie.exists_in_plex = await plex.existsInPlex(movie) try {
movie.exists_in_plex = await plex.existsInPlex(movie);
res.send(movie)
} catch (error) { } catch (error) {
handleError(error, res) if (error.status === 401) {
console.log("Unathorized request, check plex server LAN settings");
} else {
console.log("Unkown error from plex!");
}
console.log(error);
}
}
res.send(movie);
} catch (error) {
handleError(error, res);
} }
} }