Credits endpoint for movies

This commit is contained in:
2019-11-03 15:02:45 +01:00
parent 6c2c81a1a1
commit 9308d4ea9b
7 changed files with 191 additions and 10 deletions

View File

@@ -2,6 +2,8 @@ const moviedb = require('km-moviedb');
const convertTmdbToMovie = require('src/tmdb/convertTmdbToMovie');
const convertTmdbToShow = require('src/tmdb/convertTmdbToShow');
const convertTmdbToPerson = require('src/tmdb/convertTmdbToPerson');
const { Credits } = require('src/tmdb/types');
// const { tmdbInfo } = require('src/tmdb/types')
class TMDB {
@@ -13,7 +15,8 @@ class TMDB {
movieSearch: 'mos',
showSearch: 'ss',
personSearch: 'ps',
movieInfo: 'mi',
movieInfo: 'mi',
movieCredits: 'mc',
showInfo: 'si',
personInfo: 'pi',
miscNowPlayingMovies: 'npm',
@@ -106,6 +109,31 @@ class TMDB {
.then(([movies, credits, releaseDates]) => this.cache.set(cacheKey, [movies, credits, releaseDates]))
.then(([movies, credits, releaseDates]) => convertTmdbToMovie(movies, credits, releaseDates))
}
tmdbCreditsError(error) {
if (error.status === 404) {
throw {
status: 404,
message: error.response.body.status_message
}
}
throw {
status: 500,
message: 'An unexpected error occured while fetching credits from tmdb'
}
}
movieCredits(identifier) {
const query = { id: identifier }
const cacheKey = `${this.cacheTags.movieCredits}:${identifier}`
return this.cache.get(cacheKey)
.catch(() => this.tmdb('movieCredits', query))
.catch(tmdbError => this.tmdbCreditsError(tmdbError))
.then(credits => this.cache.set(cacheKey, credits, 1))
.then(credits => Credits.convertFromTmdbResponse(credits))
}
/**
* Retrieve a specific show by id from TMDB.