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:
2017-04-20 22:30:04 +02:00
parent 98d8e3dd7d
commit ddda6a3003

41
src/tmdb/tmdb.js Normal file
View 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;