append to response tvSeason support
This commit is contained in:
@@ -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<SeasonDetails>(
|
||||
async details<T extends AppendToResponseTvSeasonKey[] | undefined>(
|
||||
seasonSelection: SeasonSelection,
|
||||
appendToResponse?: T,
|
||||
options?: LanguageOption
|
||||
) {
|
||||
const combinedOptions = {
|
||||
append_to_response: appendToResponse
|
||||
? appendToResponse.join(',')
|
||||
: undefined,
|
||||
...options,
|
||||
};
|
||||
|
||||
return await this.api.get<AppendToResponse<SeasonDetails, T, 'tvSeason'>>(
|
||||
`${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<Changes<SeasonChangeValue>>(
|
||||
return await this.api.get<Changes<TvSeasonChangeValue>>(
|
||||
`/tv/season/${seasonId}/changes`,
|
||||
options
|
||||
);
|
||||
|
||||
@@ -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) &
|
||||
|
||||
@@ -15,7 +15,7 @@ export interface SeasonDetails {
|
||||
season_number: number;
|
||||
}
|
||||
|
||||
export type SeasonChangeValue =
|
||||
export type TvSeasonChangeValue =
|
||||
| string
|
||||
| {
|
||||
episode_id: number;
|
||||
|
||||
Reference in New Issue
Block a user