append to response tvSeason support

This commit is contained in:
DerPenz
2023-05-15 13:30:52 +02:00
parent dbb93f5104
commit 0020057097
3 changed files with 33 additions and 7 deletions

View File

@@ -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
);

View File

@@ -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) &

View File

@@ -15,7 +15,7 @@ export interface SeasonDetails {
season_number: number;
}
export type SeasonChangeValue =
export type TvSeasonChangeValue =
| string
| {
episode_id: number;