Rewrote the movie & show list controller to be more abstract and easier to extend later

This commit is contained in:
2019-10-04 21:21:52 +02:00
parent 0ca3f81bf8
commit 90aa4d2485

View File

@@ -17,79 +17,39 @@ const tmdb = new TMDB(cache, configuration.get('tmdb', 'apiKey'));
// + movie/latest // + movie/latest
// //
function getTmdbMovieList(res, listname, page) {
Promise.resolve()
.then(() => tmdb.movieList(listname, page))
.then((response) => res.send(response))
.catch((error) => {
res.status(500).send({ success: false, error: error.message });
})
}
function getTmdbShowList(res, listname, page) { const respondWithErrorMessage = (res, error) => {
Promise.resolve() const status = error.status || 500
.then(() => tmdb.showList(listname, page)) const message = error.message || 'Unhandled error occured'
.then((response) => res.send(response)) const success = error.success || false
.catch((error) => {
res.status(500).send({ success: false, error: error.message });
})
}
const respondWithUnknownError = (res, error) => {
// console.log('Unknown error:', error) // console.log('Unknown error:', error)
res.status(500).send({ success: false, error: 'Unhandled error occured'}) return res.status(status).send({ success: success, error: message})
} }
const nowPlayingMovies = (req, res) => { function fetchTmdbMovieList(req, res, listName, tmdbListFunction) {
const { page } = req.query; const { page } = req.query;
const listname = 'miscNowPlayingMovies'
return tmdb.movieList(listname, page) return tmdb.movieList(listName, page)
.then(nowPlayingMovieList => res.send(nowPlayingMovieList)) .then(nowPlayingMovieList => res.send(nowPlayingMovieList))
.catch(error => respondUnknownError(res, error)) .catch(error => respondWithErrorMessage(res, error))
} }
const popularMovies = (req, res) => { function fetchTmdbShowList(req, res, listName, tmdbListFunction) {
const { page } = req.query; const { page } = req.query;
const listname = 'miscPopularMovies'
getTmdbMovieList(res, listname, page); return tmdb.showList(listName, page)
.then(nowPlayingMovieList => res.send(nowPlayingMovieList))
.catch(error => respondWithErrorMessage(res, error))
} }
const topRatedMovies = (req, res) => { const nowPlayingMovies = (req, res) => fetchTmdbMovieList(req, res, 'miscNowPlayingMovies')
const { page } = req.query; const popularMovies = (req, res) => fetchTmdbMovieList(req, res, 'miscPopularMovies')
const listname = 'miscTopRatedMovies' const topRatedMovies = (req, res) => fetchTmdbMovieList(req, res, 'miscTopRatedMovies')
const upcomingMovies = (req, res) => fetchTmdbMovieList(req, res, 'miscUpcomingMovies')
getTmdbMovieList(res, listname, page); const nowPlayingShows = (req, res) => fetchTmdbShowList(req, res, 'tvOnTheAir')
} const popularShows = (req, res) => fetchTmdbShowList(req, res, 'miscPopularTvs')
const topRatedShows = (req, res) => fetchTmdbShowList(req, res, 'miscTopRatedTvs')
const upcomingMovies = (req, res) => {
const { page } = req.query;
const listname = 'miscUpcomingMovies'
getTmdbMovieList(res, listname, page);
}
const nowPlayingShows = (req, res) => {
const { page } = req.query;
const listname = 'tvOnTheAir'
getTmdbShowList(res, listname, page);
}
const popularShows = (req, res) => {
const { page } = req.query;
const listname = 'miscPopularTvs'
getTmdbShowList(res, listname, page);
}
const topRatedShows = (req, res) => {
const { page } = req.query;
const listname = 'miscTopRatedTvs'
getTmdbShowList(res, listname, page);
}
module.exports = { module.exports = {
nowPlayingMovies, nowPlayingMovies,