diff --git a/src/endpoints/tv-seasons.ts b/src/endpoints/tv-seasons.ts index 6b7efb8..68eb7c1 100644 --- a/src/endpoints/tv-seasons.ts +++ b/src/endpoints/tv-seasons.ts @@ -5,11 +5,13 @@ import { ExternalIds, Images, LanguageOption, - SeasonChangeValue, + TvSeasonChangeValue, SeasonDetails, SeasonSelection, Translations, Videos, + AppendToResponseTvSeasonKey, + AppendToResponse, } from '..'; import { BaseEndpoint } from './base'; @@ -22,10 +24,21 @@ export class TvSeasonsEndpoint extends BaseEndpoint { super(accessToken); } - async details(seasonSelection: SeasonSelection, options: LanguageOption) { - return await this.api.get( + async details( + seasonSelection: SeasonSelection, + appendToResponse?: T, + options?: LanguageOption + ) { + const combinedOptions = { + append_to_response: appendToResponse + ? appendToResponse.join(',') + : undefined, + ...options, + }; + + return await this.api.get>( `${BASE_SEASON(seasonSelection)}`, - options + combinedOptions ); } @@ -40,7 +53,7 @@ export class TvSeasonsEndpoint extends BaseEndpoint { } async changes(seasonId: number, options?: ChangeOption) { - return await this.api.get>( + return await this.api.get>( `/tv/season/${seasonId}/changes`, options ); diff --git a/src/types/options.ts b/src/types/options.ts index b2ceb61..0432f59 100644 --- a/src/types/options.ts +++ b/src/types/options.ts @@ -29,6 +29,7 @@ import { TvEpisodeChangeValue, TvEpisodeCredit, TvEpisodeTranslations, + TvSeasonChangeValue, } from '.'; export interface LanguageOption { @@ -99,16 +100,26 @@ export type AppendToResponseTvEpisodeKey = | 'videos' | 'translations'; +export type AppendToResponseTvSeasonKey = + | 'images' + | 'credits' + | 'external_ids' + | 'videos' + | 'aggregate_credits' + | 'translations'; + type AppendToResponseAllKeys = | AppendToResponseTvKey | AppendToResponseMovieKey | AppendToResponseTvEpisodeKey + | AppendToResponseTvSeasonKey | AppendToResponsePersonKey; export type AppendToResponseMediaType = | 'movie' | 'tvShow' | 'person' + | 'tvSeason' | 'tvEpisode'; export type AppendToResponse< @@ -153,7 +164,9 @@ export type AppendToResponse< ? MovieChangeValue : Media extends 'tvShow' ? TvShowChangeValue - : TvEpisodeChangeValue + : Media extends 'tvSeason' + ? TvSeasonChangeValue : + TvEpisodeChangeValue >; } : object) & diff --git a/src/types/tv-seasons.ts b/src/types/tv-seasons.ts index e2a0211..72e3b8f 100644 --- a/src/types/tv-seasons.ts +++ b/src/types/tv-seasons.ts @@ -15,7 +15,7 @@ export interface SeasonDetails { season_number: number; } -export type SeasonChangeValue = +export type TvSeasonChangeValue = | string | { episode_id: number;