added people endpoint with details, credits
This commit is contained in:
@@ -9,3 +9,5 @@ export * from './genre';
|
|||||||
export * from './movies';
|
export * from './movies';
|
||||||
export * from './configuration';
|
export * from './configuration';
|
||||||
export * from './tv-shows';
|
export * from './tv-shows';
|
||||||
|
export * from './people';
|
||||||
|
|
||||||
|
|||||||
32
src/endpoints/people.ts
Normal file
32
src/endpoints/people.ts
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
import { PersonDetail, PersonMovieCredit, PersonTvShowCredit } from '../types';
|
||||||
|
import { BaseEndpoint } from './base';
|
||||||
|
|
||||||
|
const BASE_PERSON = '/person';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export class PeopleEndpoint extends BaseEndpoint {
|
||||||
|
constructor(accessToken: string) {
|
||||||
|
super(accessToken);
|
||||||
|
}
|
||||||
|
|
||||||
|
async details(id: number): Promise<PersonDetail> {
|
||||||
|
return await this.api.get<PersonDetail>(`${BASE_PERSON}/${id}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
async movieCredits(
|
||||||
|
id: number
|
||||||
|
): Promise<PersonMovieCredit> {
|
||||||
|
return await this.api.get<PersonMovieCredit>(
|
||||||
|
`${BASE_PERSON}/${id}/movie_credits`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
async tvShowCredits(
|
||||||
|
id: number
|
||||||
|
): Promise<PersonTvShowCredit> {
|
||||||
|
return await this.api.get<PersonTvShowCredit>(
|
||||||
|
`${BASE_PERSON}/${id}/tv_credits`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,6 +6,7 @@ export * from './movies';
|
|||||||
export * from './search';
|
export * from './search';
|
||||||
export * from './tv-shows';
|
export * from './tv-shows';
|
||||||
export * from './watch-providers';
|
export * from './watch-providers';
|
||||||
|
export * from './people';
|
||||||
|
|
||||||
export interface AuthorDetails {
|
export interface AuthorDetails {
|
||||||
name: string;
|
name: string;
|
||||||
|
|||||||
89
src/types/people.ts
Normal file
89
src/types/people.ts
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
interface Cast {
|
||||||
|
character: string;
|
||||||
|
credit_id: string;
|
||||||
|
vote_count: number;
|
||||||
|
id: number;
|
||||||
|
backdrop_path: string;
|
||||||
|
poster_path: string;
|
||||||
|
original_language: string;
|
||||||
|
vote_average: number;
|
||||||
|
genre_ids: number[];
|
||||||
|
popularity: number;
|
||||||
|
overview: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Crew {
|
||||||
|
id: number;
|
||||||
|
department: string;
|
||||||
|
original_language: string;
|
||||||
|
credit_id: string;
|
||||||
|
overview: string;
|
||||||
|
vote_count: number;
|
||||||
|
poster_path: string;
|
||||||
|
backdrop_path: string;
|
||||||
|
popularity: number;
|
||||||
|
genre_ids: number[];
|
||||||
|
job: string;
|
||||||
|
vote_average: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PersonMovieCast extends Cast {
|
||||||
|
release_date: string;
|
||||||
|
video: boolean;
|
||||||
|
adult: boolean;
|
||||||
|
title: string;
|
||||||
|
original_title: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PersonMovieCrew extends Crew {
|
||||||
|
original_title: string;
|
||||||
|
video: boolean;
|
||||||
|
title: string;
|
||||||
|
adult: boolean;
|
||||||
|
release_date: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PersonTvShowCrew extends Crew {
|
||||||
|
episode_count: number;
|
||||||
|
origin_country: string[];
|
||||||
|
original_name: string;
|
||||||
|
name: string;
|
||||||
|
first_air_date: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PersonTvShowCast extends Cast {
|
||||||
|
original_name: string;
|
||||||
|
name: string;
|
||||||
|
episode_count: number;
|
||||||
|
first_air_date: string;
|
||||||
|
origin_country: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PersonMovieCredit {
|
||||||
|
cast: PersonMovieCast[];
|
||||||
|
crew: PersonMovieCrew[];
|
||||||
|
id: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PersonTvShowCredit {
|
||||||
|
cast: PersonTvShowCast[];
|
||||||
|
crew: PersonTvShowCrew[];
|
||||||
|
id: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PersonDetail {
|
||||||
|
birthday: string,
|
||||||
|
known_for_department: string,
|
||||||
|
deathday: string,
|
||||||
|
id: number,
|
||||||
|
name: string,
|
||||||
|
also_known_as: string[]
|
||||||
|
gender: number,
|
||||||
|
biography: string,
|
||||||
|
popularity: number,
|
||||||
|
place_of_birth: string,
|
||||||
|
profile_path: string,
|
||||||
|
adult: boolean,
|
||||||
|
imdb_id: string,
|
||||||
|
homepage: string
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user