diff --git a/src/endpoints/tv-shows.ts b/src/endpoints/tv-shows.ts index f97cd77..bc04d66 100644 --- a/src/endpoints/tv-shows.ts +++ b/src/endpoints/tv-shows.ts @@ -1,5 +1,6 @@ import { BaseEndpoint } from './base'; import { + AggregateCredits, AlternativeTitles, AppendToResponse, AppendToResponseTvKey, @@ -75,6 +76,10 @@ export class TvShowsEndpoint extends BaseEndpoint { ); } + async aggregateCredits(id: number): Promise { + return await this.api.get(`${BASE_TV}/${id}/aggregate_credits`); + } + async credits(id: number): Promise { return await this.api.get(`${BASE_TV}/${id}/credits`); } diff --git a/src/types/credits.ts b/src/types/credits.ts index c5409e5..5c352ec 100644 --- a/src/types/credits.ts +++ b/src/types/credits.ts @@ -101,3 +101,49 @@ export interface Videos { id: number; results: Video[]; } + +export interface AggregateCredits { + id: number; + cast: AggregateCast[]; + crew: AggregateCrew[]; +} + +export interface CastRole { + credit_id: string; + character: string; + episode_count: number; +} + +export interface AggregateCast { + adult: boolean; + gender: number; + id: number; + known_for_department: string; + name: string; + original_name: string; + popularity: number; + profile_path: string; + roles: CastRole[]; + total_episode_count: number; + order: number; +} + +export interface CrewJob { + credit_id: string; + job: string; + episode_count: number; +} + +export interface AggregateCrew { + adult: boolean; + gender: number; + id: number; + known_for_department: string; + name: string; + original_name: string; + popularity: number; + profile_path: string; + jobs: CrewJob[]; + department: string; + total_episode_count: number; +}