From a2a4b9a553e101764716a7db82915b12adcc150f Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Thu, 26 Dec 2019 01:08:19 +0100 Subject: [PATCH] getPerson endpoint and is called properly when movie.vue opens with type 'person'. --- src/api.js | 19 +++++++++++++++++++ src/components/Movie.vue | 8 +++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/api.js b/src/api.js index 1d0533b..a72d585 100644 --- a/src/api.js +++ b/src/api.js @@ -48,6 +48,24 @@ const getShow = (id, credits=false) => { .catch(error => { console.error(`api error getting show: ${id}`); throw error }) } +/** + * Fetches tmdb person by id. Can optionally include cast credits in result object. + * @param {number} id + * @param {boolean} [credits=false] Include credits + * @returns {object} Tmdb response + */ +const getPerson = (id, credits=false) => { + const url = new URL('v2/person', SEASONED_URL) + url.pathname = path.join(url.pathname, id.toString()) + if (credits) { + url.searchParams.append('credits', true) + } + + return fetch(url.href) + .then(resp => resp.json()) + .catch(error => { console.error(`api error getting person: ${id}`); throw error }) +} + /** * Fetches tmdb list by name. * @param {string} name List the fetch @@ -295,6 +313,7 @@ const elasticSearchMoviesAndShows = (query) => { export { getMovie, getShow, + getPerson, getTmdbMovieListByName, searchTmdb, getUserRequests, diff --git a/src/components/Movie.vue b/src/components/Movie.vue index 213f937..42a83dc 100644 --- a/src/components/Movie.vue +++ b/src/components/Movie.vue @@ -123,7 +123,7 @@ import SidebarListElement from './ui/sidebarListElem' import store from '@/store' import LoadingPlaceholder from './ui/LoadingPlaceholder' -import { getMovie, getShow, request, getRequestStatus } from '@/api' +import { getMovie, getPerson, getShow, request, getRequestStatus } from '@/api' export default { props: ['id', 'type'], @@ -205,6 +205,12 @@ export default { .catch(error => { this.$router.push({ name: '404' }); }) + } else if (this.type == 'person') { + getPerson(this.id, true) + .then(this.parseResponse) + .catch(error => { + this.$router.push({ name: '404' }); + }) } else { getShow(this.id) .then(this.parseResponse)