41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
const configuration = require('src/config/configuration').getInstance();
|
|
const Cache = require('src/tmdb/cache');
|
|
const TMDB = require('src/tmdb/tmdb');
|
|
const SearchHistory = require('src/searchHistory/searchHistory');
|
|
const cache = new Cache();
|
|
const tmdb = new TMDB(cache, configuration.get('tmdb', 'apiKey'));
|
|
const searchHistory = new SearchHistory();
|
|
|
|
/**
|
|
* Controller: Search for movies by query and pagey
|
|
* @param {Request} req http request variable
|
|
* @param {Response} res
|
|
* @returns {Callback}
|
|
*/
|
|
function movieSearchController(req, res) {
|
|
const user = req.loggedInUser;
|
|
const { query, page } = req.query;
|
|
|
|
if (user) {
|
|
return searchHistory.create(user, query);
|
|
}
|
|
|
|
tmdb.movieSearch(query, page)
|
|
.then(movieSearchResults => res.send(movieSearchResults))
|
|
.catch(error => {
|
|
const { status, message } = error;
|
|
|
|
if (status && message) {
|
|
res.status(status).send({ success: false, message })
|
|
} else {
|
|
// TODO log unhandled errors
|
|
console.log('caugth movie search controller error', error)
|
|
res.status(500).send({
|
|
message: `An unexpected error occured while searching movies with query: ${query}`
|
|
})
|
|
}
|
|
})
|
|
}
|
|
|
|
module.exports = movieSearchController;
|