From ddda6a300344ac50a6b8b9ef5667e38b528633e1 Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Thu, 20 Apr 2017 22:30:04 +0200 Subject: [PATCH] Funciton for what calling and sending data from tmdb to right places. It sends to be converted to the universal movie class --- src/tmdb/tmdb.js | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/tmdb/tmdb.js diff --git a/src/tmdb/tmdb.js b/src/tmdb/tmdb.js new file mode 100644 index 0000000..8d049ac --- /dev/null +++ b/src/tmdb/tmdb.js @@ -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; \ No newline at end of file