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