32 lines
985 B
JavaScript
32 lines
985 B
JavaScript
const configuration = require('src/config/configuration').getInstance();
|
|
const Cache = require('src/tmdb/cache');
|
|
const TMDB = require('src/tmdb/tmdb');
|
|
|
|
const cache = new Cache();
|
|
const tmdb = new TMDB(cache, configuration.get('tmdb', 'apiKey'));
|
|
|
|
/**
|
|
* Controller: Search for movies by query, page and optional type
|
|
* @param {Request} req http request variable
|
|
* @param {Response} res
|
|
* @returns {Callback}
|
|
*/
|
|
function searchMediaController(req, res) {
|
|
const { query, page, type } = req.query;
|
|
|
|
Promise.resolve()
|
|
.then(() => tmdb.search(query, page, type))
|
|
.then((movies) => {
|
|
if (movies !== undefined || movies.length > 0) {
|
|
res.send(movies);
|
|
} else {
|
|
res.status(404).send({ success: false, error: 'Search query did not return any results.' });
|
|
}
|
|
})
|
|
.catch((error) => {
|
|
res.status(500).send({ success: false, error: error.message });
|
|
});
|
|
}
|
|
|
|
module.exports = searchMediaController;
|