Moved contents of seasoned_api up to root folder
This commit is contained in:
81
src/webserver/controllers/list/listController.js
Normal file
81
src/webserver/controllers/list/listController.js
Normal file
@@ -0,0 +1,81 @@
|
||||
const configuration = require("../../../config/configuration").getInstance();
|
||||
const TMDB = require("../../../tmdb/tmdb");
|
||||
const tmdb = new TMDB(configuration.get("tmdb", "apiKey"));
|
||||
|
||||
// there should be a translate function from query params to
|
||||
// tmdb list that is valid. Should it be a helper function or does it
|
||||
// belong in tmdb.
|
||||
// + could also have default value that are sent to the client.
|
||||
// * have the same class create a getListNames() and a fetchList()
|
||||
// * dicover list might be overkill_https://tinyurl.com/y7f8ragw
|
||||
// + trending! https://tinyurl.com/ydywrqox
|
||||
// by all, mediatype, or person. Can also define time periode to
|
||||
// get more trending view of what people are checking out.
|
||||
// + newly created (tv/latest).
|
||||
// + movie/latest
|
||||
//
|
||||
function handleError(error, res) {
|
||||
const { status, message } = error;
|
||||
|
||||
if (status && message) {
|
||||
res.status(status).send({ success: false, message });
|
||||
} else {
|
||||
console.log("caught list controller error", error);
|
||||
res
|
||||
.status(500)
|
||||
.send({ message: "An unexpected error occured while requesting list" });
|
||||
}
|
||||
}
|
||||
|
||||
function handleListResponse(response, res) {
|
||||
return res.send(response).catch(error => handleError(error, res));
|
||||
}
|
||||
|
||||
function fetchTmdbList(req, res, listname, type) {
|
||||
const { page } = req.query;
|
||||
|
||||
if (type === "movie") {
|
||||
return tmdb
|
||||
.movieList(listname, page)
|
||||
.then(listResponse => res.send(listResponse))
|
||||
.catch(error => handleError(error, res));
|
||||
} else if (type === "show") {
|
||||
return tmdb
|
||||
.showList(listname, page)
|
||||
.then(listResponse => res.send(listResponse))
|
||||
.catch(error => handleError(error, res));
|
||||
}
|
||||
|
||||
handleError(
|
||||
{
|
||||
status: 400,
|
||||
message: `'${type}' is not a valid list type.`
|
||||
},
|
||||
res
|
||||
);
|
||||
}
|
||||
|
||||
const nowPlayingMovies = (req, res) =>
|
||||
fetchTmdbList(req, res, "miscNowPlayingMovies", "movie");
|
||||
const popularMovies = (req, res) =>
|
||||
fetchTmdbList(req, res, "miscPopularMovies", "movie");
|
||||
const topRatedMovies = (req, res) =>
|
||||
fetchTmdbList(req, res, "miscTopRatedMovies", "movie");
|
||||
const upcomingMovies = (req, res) =>
|
||||
fetchTmdbList(req, res, "miscUpcomingMovies", "movie");
|
||||
const nowPlayingShows = (req, res) =>
|
||||
fetchTmdbList(req, res, "tvOnTheAir", "show");
|
||||
const popularShows = (req, res) =>
|
||||
fetchTmdbList(req, res, "miscPopularTvs", "show");
|
||||
const topRatedShows = (req, res) =>
|
||||
fetchTmdbList(req, res, "miscTopRatedTvs", "show");
|
||||
|
||||
module.exports = {
|
||||
nowPlayingMovies,
|
||||
popularMovies,
|
||||
topRatedMovies,
|
||||
upcomingMovies,
|
||||
nowPlayingShows,
|
||||
popularShows,
|
||||
topRatedShows
|
||||
};
|
||||
Reference in New Issue
Block a user