Funciton for what calling and sending data from tmdb to right places. It sends to be converted to the universal movie class
This commit is contained in:
41
src/tmdb/tmdb.js
Normal file
41
src/tmdb/tmdb.js
Normal file
@@ -0,0 +1,41 @@
|
||||
const moviedb = require('moviedb');
|
||||
const convertTmdbToMovie = require('src/tmdb/convertTmdbToMovie');
|
||||
|
||||
class TMDB {
|
||||
constructor(apiKey, tmdbLibrary) {
|
||||
this.tmdbLibrary = tmdbLibrary || moviedb(apiKey);
|
||||
}
|
||||
|
||||
search(text, page = 1) {
|
||||
const query = { query: text, page };
|
||||
return Promise.resolve()
|
||||
.then(() => this.tmdb('searchMovie', query))
|
||||
.catch(() => { throw new Error('Could not search for movies.'); })
|
||||
.then((reponse) => {
|
||||
try {
|
||||
return reponse.results.map(convertTmdbToMovie);
|
||||
} catch (parseError) {
|
||||
throw new Error('Could not parse result.');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
tmdb(method, argument) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const callback = (error, reponse) => {
|
||||
if (error) {
|
||||
return reject(error);
|
||||
}
|
||||
resolve(reponse);
|
||||
};
|
||||
|
||||
if (!argument) {
|
||||
this.tmdbLibrary[method](callback);
|
||||
} else {
|
||||
this.tmdbLibrary[method](argument, callback);
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = TMDB;
|
||||
Reference in New Issue
Block a user