diff --git a/seasoned_api/src/tmdb/types/movie.js b/seasoned_api/src/tmdb/types/movie.js index 64556a8..4663245 100644 --- a/seasoned_api/src/tmdb/types/movie.js +++ b/seasoned_api/src/tmdb/types/movie.js @@ -1,14 +1,15 @@ class Movie { - constructor(id, title, year=undefined, overview=undefined, poster=undefined, - backdrop=undefined, rank=undefined, genres=undefined, productionStatus=undefined, - tagline=undefined, runtime=undefined, imdb_id=undefined, popularity) { + constructor(id, title, year=undefined, overview=undefined, poster=undefined, backdrop=undefined, + releaseDate=undefined, rating=undefined, genres=undefined, productionStatus=undefined, + tagline=undefined, runtime=undefined, imdb_id=undefined, popularity=undefined) { this.id = id; this.title = title; this.year = year; this.overview = overview; this.poster = poster; this.backdrop = backdrop; - this.rank = rank; + this.releaseDate = releaseDate; + this.rating = rating; this.genres = genres; this.productionStatus = productionStatus; this.tagline = tagline; @@ -19,13 +20,14 @@ class Movie { } static convertFromTmdbResponse(response) { - const { id, title, release_date, overview, poster_path, backdrop_path, rank, genres, status, + const { id, title, release_date, overview, poster_path, backdrop_path, vote_average, genres, status, tagline, runtime, imdb_id, popularity } = response; - const year = new Date(release_date).getFullYear() + const releaseDate = new Date(release_date); + const year = releaseDate.getFullYear(); const genreNames = genres ? genres.map(g => g.name) : undefined - return new Movie(id, title, year, overview, poster_path, backdrop_path, rank, genreNames, status, + return new Movie(id, title, year, overview, poster_path, backdrop_path, releaseDate, vote_average, genreNames, status, tagline, runtime, imdb_id, popularity) } @@ -34,7 +36,7 @@ class Movie { const { title, year, rating, tagline, summary } = response; const _ = undefined - return new Movie(null, title, year, summary, _, _, rating, _, _, tagline) + return new Movie(null, title, year, summary, _, _, _, rating, _, _, tagline) } createJsonResponse() { @@ -45,7 +47,8 @@ class Movie { overview: this.overview, poster: this.poster, backdrop: this.backdrop, - rank: this.rank, + release_date: this.releaseDate, + rating: this.rating, genres: this.genres, production_status: this.productionStatus, tagline: this.tagline, diff --git a/seasoned_api/src/webserver/controllers/list/listController.js b/seasoned_api/src/webserver/controllers/list/listController.js index c6357dd..0a4018b 100644 --- a/seasoned_api/src/webserver/controllers/list/listController.js +++ b/seasoned_api/src/webserver/controllers/list/listController.js @@ -32,11 +32,11 @@ function handleListResponse(response, res) { .catch(error => handleError(error, res)) } -function fetchTmdbList(req, res, listName, type) { +function fetchTmdbList(req, res, listname, type) { const { page } = req.query; if (type === 'movie') { - return tmdb.movieList(listName, page) + return tmdb.movieList(listname, page) .then(listResponse => res.send(listResponse)) .catch(error => handleError(error, res)) } else if (type === 'show') { diff --git a/seasoned_api/test/fixtures/empty-query-success-response.json b/seasoned_api/test/fixtures/empty-query-success-response.json new file mode 100644 index 0000000..d379177 --- /dev/null +++ b/seasoned_api/test/fixtures/empty-query-success-response.json @@ -0,0 +1,6 @@ +{ + "page":1, + "results":[], + "total_results":0, + "total_pages":1 +} diff --git a/seasoned_api/test/helpers/tmdbMock2.js b/seasoned_api/test/helpers/tmdbMock2.js new file mode 100644 index 0000000..c6ff722 --- /dev/null +++ b/seasoned_api/test/helpers/tmdbMock2.js @@ -0,0 +1,16 @@ +const tmdbMock = () => ({ + error: null, + response: null, + searchMovie(query, callback) { + callback(this.error, this.response); + }, + movieInfo(query, callback) { + callback(this.error, this.response); + }, + miscPopularMovies(callback) { + console.log('miscPopMovies callback', callback) + callback(this.error, this.response); + }, +}); + +module.exports = tmdbMock; diff --git a/seasoned_api/test/unit/tmdb/testConvertTmdbToMovie.js b/seasoned_api/test/unit/tmdb/testConvertTmdbToMovie.js index cf8f3ba..2ae569c 100644 --- a/seasoned_api/test/unit/tmdb/testConvertTmdbToMovie.js +++ b/seasoned_api/test/unit/tmdb/testConvertTmdbToMovie.js @@ -1,28 +1,29 @@ const assert = require('assert'); -const convertTmdbToMovie = require('src/tmdb/convertTmdbToMovie'); +// const convertTmdbToMovie = require('src/tmdb/convertTmdbToMovie'); +const { Movie } = require('src/tmdb/types'); const bladeRunnerQuerySuccess = require('test/fixtures/blade_runner_2049-info-success-response.json') describe('Convert tmdb movieInfo to movie', () => { beforeEach(() => [this.bladeRunnerTmdbMovie] = bladeRunnerQuerySuccess); it('should translate the tmdb release date to movie year', () => { - const bladeRunner = convertTmdbToMovie(this.bladeRunnerTmdbMovie); + const bladeRunner = Movie.convertFromTmdbResponse(this.bladeRunnerTmdbMovie); assert.strictEqual(bladeRunner.year, 2017); }); it('should translate the tmdb release date to instance of Date', () => { - const bladeRunner = convertTmdbToMovie(this.bladeRunnerTmdbMovie); - assert(bladeRunner.release_date instanceof Date); + const bladeRunner = Movie.convertFromTmdbResponse(this.bladeRunnerTmdbMovie); + assert(bladeRunner.releaseDate instanceof Date); }); it('should translate the tmdb title to title', () => { - const bladeRunner = convertTmdbToMovie(this.bladeRunnerTmdbMovie); + const bladeRunner = Movie.convertFromTmdbResponse(this.bladeRunnerTmdbMovie); assert.equal(bladeRunner.title, 'Blade Runner 2049'); }); - it('should translate the tmdb vote_average to rank', () => { - const bladeRunner = convertTmdbToMovie(this.bladeRunnerTmdbMovie); - assert.equal(bladeRunner.rank, 7.3); + it('should translate the tmdb vote_average to rating', () => { + const bladeRunner = Movie.convertFromTmdbResponse(this.bladeRunnerTmdbMovie); + assert.equal(bladeRunner.rating, 7.3); }); diff --git a/seasoned_api/test/unit/tmdb/testTmdb.disabled b/seasoned_api/test/unit/tmdb/testTmdb.disabled index cb5c5eb..703f9ae 100644 --- a/seasoned_api/test/unit/tmdb/testTmdb.disabled +++ b/seasoned_api/test/unit/tmdb/testTmdb.disabled @@ -21,7 +21,7 @@ describe('TMDB', function test() { it('should return the "Blade Runner 2049" year in the collection of popular movies', () => { this.mockMoviedb.response = popularMovieSuccessResponse; const cache = new Cache(this.database); - const tmdb = new TMDB(cache, 'bogus-api-key', this.mockMoviedb); + const tmdb = new TMDB(cache, 'bogus-pi-key', this.mockMoviedb); return tmdb.popular() .then(movies => assert.equal(movies[0].title, "Blade Runner 2049")