format & combined equal changes type
This commit is contained in:
@@ -1,20 +1,20 @@
|
|||||||
import { BaseEndpoint } from './base';
|
import { BaseEndpoint } from './base';
|
||||||
import { ChangeOptions, Changes } from '../types/changes';
|
import { ChangeOptions, MediaChanges } from '../types/changes';
|
||||||
|
|
||||||
export class ChangeEndpoint extends BaseEndpoint {
|
export class ChangeEndpoint extends BaseEndpoint {
|
||||||
constructor(protected readonly accessToken: string) {
|
constructor(protected readonly accessToken: string) {
|
||||||
super(accessToken);
|
super(accessToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
async movies(options?: ChangeOptions): Promise<Changes> {
|
async movies(options?: ChangeOptions): Promise<MediaChanges> {
|
||||||
return await this.api.get<Changes>(`/movie/changes`, options);
|
return await this.api.get<MediaChanges>(`/movie/changes`, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
async tvShows(options?: ChangeOptions): Promise<Changes> {
|
async tvShows(options?: ChangeOptions): Promise<MediaChanges> {
|
||||||
return await this.api.get<Changes>(`/tv/changes`, options);
|
return await this.api.get<MediaChanges>(`/tv/changes`, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
async person(options?: ChangeOptions): Promise<Changes> {
|
async person(options?: ChangeOptions): Promise<MediaChanges> {
|
||||||
return await this.api.get<Changes>(`/person/change`, options);
|
return await this.api.get<MediaChanges>(`/person/change`, options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ import {
|
|||||||
AppendToResponse,
|
AppendToResponse,
|
||||||
AppendToResponseKeys,
|
AppendToResponseKeys,
|
||||||
ChangeOptions,
|
ChangeOptions,
|
||||||
|
Changes,
|
||||||
Credits,
|
Credits,
|
||||||
ExternalIds,
|
ExternalIds,
|
||||||
Images,
|
Images,
|
||||||
Keywords,
|
Keywords,
|
||||||
LanguageOption,
|
LanguageOption,
|
||||||
LatestMovie,
|
LatestMovie,
|
||||||
MovieChanges,
|
|
||||||
MovieDetails,
|
MovieDetails,
|
||||||
MovieLists,
|
MovieLists,
|
||||||
MoviesPlayingNow,
|
MoviesPlayingNow,
|
||||||
@@ -40,7 +40,9 @@ export class MoviesEndpoint extends BaseEndpoint {
|
|||||||
appendToResponse?: T
|
appendToResponse?: T
|
||||||
) {
|
) {
|
||||||
const options = {
|
const options = {
|
||||||
append_to_response: appendToResponse ? appendToResponse.join(',') : undefined,
|
append_to_response: appendToResponse
|
||||||
|
? appendToResponse.join(',')
|
||||||
|
: undefined,
|
||||||
};
|
};
|
||||||
|
|
||||||
return await this.api.get<AppendToResponse<MovieDetails, T>>(
|
return await this.api.get<AppendToResponse<MovieDetails, T>>(
|
||||||
@@ -55,11 +57,8 @@ export class MoviesEndpoint extends BaseEndpoint {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async changes(id: number, options?: ChangeOptions): Promise<MovieChanges> {
|
async changes(id: number, options?: ChangeOptions): Promise<Changes> {
|
||||||
return await this.api.get<MovieChanges>(
|
return await this.api.get<Changes>(`${BASE_MOVIE}/${id}/changes`, options);
|
||||||
`${BASE_MOVIE}/${id}/changes`,
|
|
||||||
options
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async credits(id: number): Promise<Credits> {
|
async credits(id: number): Promise<Credits> {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import {
|
|||||||
AppendToResponse,
|
AppendToResponse,
|
||||||
AppendToResponseKeys,
|
AppendToResponseKeys,
|
||||||
ChangeOptions,
|
ChangeOptions,
|
||||||
|
Changes,
|
||||||
ContentRatings,
|
ContentRatings,
|
||||||
Credits,
|
Credits,
|
||||||
EpisodeGroups,
|
EpisodeGroups,
|
||||||
@@ -23,7 +24,6 @@ import {
|
|||||||
SimilarTvShows,
|
SimilarTvShows,
|
||||||
TopRatedTvShows,
|
TopRatedTvShows,
|
||||||
Translations,
|
Translations,
|
||||||
TvShowChanges,
|
|
||||||
TvShowDetails,
|
TvShowDetails,
|
||||||
TvShowsAiringToday,
|
TvShowsAiringToday,
|
||||||
Videos,
|
Videos,
|
||||||
@@ -58,11 +58,8 @@ export class TvShowsEndpoint extends BaseEndpoint {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async changes(id: number, options?: ChangeOptions): Promise<TvShowChanges> {
|
async changes(id: number, options?: ChangeOptions): Promise<Changes> {
|
||||||
return await this.api.get<TvShowChanges>(
|
return await this.api.get<Changes>(`${BASE_TV}/${id}/changes`, options);
|
||||||
`${BASE_TV}/${id}/changes`,
|
|
||||||
options
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async contentRatings(id: number): Promise<ContentRatings> {
|
async contentRatings(id: number): Promise<ContentRatings> {
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
export interface Change {
|
export interface MediaChange {
|
||||||
id: number;
|
id: number;
|
||||||
adult: boolean | undefined;
|
adult: boolean | undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Changes {
|
export interface MediaChanges {
|
||||||
results: Change[];
|
results: MediaChange[];
|
||||||
page: number;
|
page: number;
|
||||||
total_pages: number;
|
total_pages: number;
|
||||||
total_results: number;
|
total_results: number;
|
||||||
@@ -15,3 +15,21 @@ export interface ChangeOptions {
|
|||||||
start_date?: string;
|
start_date?: string;
|
||||||
page?: number;
|
page?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface Changes {
|
||||||
|
changes: Change[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Change {
|
||||||
|
key: string;
|
||||||
|
items: ChangeItem[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ChangeItem {
|
||||||
|
id: string;
|
||||||
|
action: string;
|
||||||
|
time: string;
|
||||||
|
value: Array<number>;
|
||||||
|
iso_639_1: string;
|
||||||
|
original_value: Array<number>;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
export interface ImageConfiguration {
|
export interface ImageConfiguration {
|
||||||
id: number,
|
id: number;
|
||||||
backdrops: null,
|
backdrops: null;
|
||||||
logos: null,
|
logos: null;
|
||||||
posters: null
|
posters: null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Configuration {
|
export interface Configuration {
|
||||||
|
|||||||
@@ -204,8 +204,8 @@ export interface Image {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface Images {
|
export interface Images {
|
||||||
id: number,
|
id: number;
|
||||||
backdrops: Image[],
|
backdrops: Image[];
|
||||||
logos: Image[],
|
logos: Image[];
|
||||||
posters: Image[],
|
posters: Image[];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,24 +94,6 @@ export interface MovieLists {
|
|||||||
total_results: number;
|
total_results: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MovieChangeItem {
|
|
||||||
id: string;
|
|
||||||
action: string;
|
|
||||||
time: string;
|
|
||||||
iso_639_1: string;
|
|
||||||
value: string;
|
|
||||||
original_value: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface MovieChange {
|
|
||||||
key: string;
|
|
||||||
items: MovieChangeItem[];
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface MovieChanges {
|
|
||||||
changes: MovieChange[];
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface LatestMovie {
|
export interface LatestMovie {
|
||||||
adult: boolean;
|
adult: boolean;
|
||||||
backdrop_path?: string;
|
backdrop_path?: string;
|
||||||
|
|||||||
@@ -35,15 +35,21 @@ export type AppendToResponse<
|
|||||||
(T extends undefined
|
(T extends undefined
|
||||||
? object
|
? object
|
||||||
: T extends Array<unknown>
|
: T extends Array<unknown>
|
||||||
? ('credits' extends T[number] ? { credits: Omit<Credits, 'id'> } : object) &
|
? ('credits' extends T[number]
|
||||||
|
? { credits: Omit<Credits, 'id'> }
|
||||||
|
: object) &
|
||||||
('videos' extends T[number] ? { videos: Omit<Videos, 'id'> } : object) &
|
('videos' extends T[number] ? { videos: Omit<Videos, 'id'> } : object) &
|
||||||
('images' extends T[number] ? { images: Omit<Images, 'id'> } : object) &
|
('images' extends T[number] ? { images: Omit<Images, 'id'> } : object) &
|
||||||
('recommendations' extends T[number]
|
('recommendations' extends T[number]
|
||||||
? { recommendations: Recommendations }
|
? { recommendations: Recommendations }
|
||||||
: object) &
|
: object) &
|
||||||
('reviews' extends T[number] ? { reviews: Omit<Reviews, 'id'> } : object) &
|
('reviews' extends T[number]
|
||||||
|
? { reviews: Omit<Reviews, 'id'> }
|
||||||
|
: object) &
|
||||||
('reviews' extends T[number]
|
('reviews' extends T[number]
|
||||||
? { reviews: Omit<Translations, 'id'> }
|
? { reviews: Omit<Translations, 'id'> }
|
||||||
: object) &
|
: object) &
|
||||||
('keywords' extends T[number] ? { keywords: Omit<Keywords, 'id'> } : object)
|
('keywords' extends T[number]
|
||||||
|
? { keywords: Omit<Keywords, 'id'> }
|
||||||
|
: object)
|
||||||
: never);
|
: never);
|
||||||
|
|||||||
@@ -134,24 +134,6 @@ export interface SeasonDetails {
|
|||||||
season_number: number;
|
season_number: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TvShowItem {
|
|
||||||
id: string;
|
|
||||||
action: string;
|
|
||||||
time: string;
|
|
||||||
value: Array<number>;
|
|
||||||
iso_639_1: string;
|
|
||||||
original_value: Array<number>;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface TvShowChange {
|
|
||||||
key: string;
|
|
||||||
items: TvShowItem[];
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface TvShowChanges {
|
|
||||||
changes: TvShowChange[];
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface Network {
|
export interface Network {
|
||||||
id: number;
|
id: number;
|
||||||
logo_path: string;
|
logo_path: string;
|
||||||
|
|||||||
Reference in New Issue
Block a user