added trending endpoint and types
This commit is contained in:
@@ -12,4 +12,5 @@ export * from './tv-shows';
|
|||||||
export * from './discover';
|
export * from './discover';
|
||||||
export * from './people';
|
export * from './people';
|
||||||
export * from './review';
|
export * from './review';
|
||||||
|
export * from './trending';
|
||||||
|
|
||||||
|
|||||||
14
src/endpoints/trending.ts
Normal file
14
src/endpoints/trending.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import { MediaType, TimeWindow, TrendingResults, } from '../types';
|
||||||
|
import { BaseEndpoint } from './base';
|
||||||
|
|
||||||
|
export class TrendingEndpoint extends BaseEndpoint {
|
||||||
|
constructor(accessToken: string) {
|
||||||
|
super(accessToken);
|
||||||
|
}
|
||||||
|
|
||||||
|
async trending<T extends MediaType>(mediaType : T, timeWindow: TimeWindow): Promise<TrendingResults<T>> {
|
||||||
|
return await this.api.get<TrendingResults<T>>(`/trending/${mediaType}/${timeWindow}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -9,6 +9,7 @@ export * from './watch-providers';
|
|||||||
export * from './people';
|
export * from './people';
|
||||||
export * from './discover';
|
export * from './discover';
|
||||||
export * from './review';
|
export * from './review';
|
||||||
|
export * from './trending';
|
||||||
|
|
||||||
export interface AuthorDetails {
|
export interface AuthorDetails {
|
||||||
name: string;
|
name: string;
|
||||||
|
|||||||
19
src/types/trending.ts
Normal file
19
src/types/trending.ts
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import { Movie, Person, TV } from '.';
|
||||||
|
export type MediaType = 'all' | 'movie' | 'tv' | 'person';
|
||||||
|
|
||||||
|
export type TimeWindow = 'day' | 'week';
|
||||||
|
|
||||||
|
type TrendingResult<T extends MediaType> = T extends 'tv'
|
||||||
|
? TV
|
||||||
|
: T extends 'movie'
|
||||||
|
? Movie
|
||||||
|
: T extends 'person'
|
||||||
|
? Person
|
||||||
|
: TV | Movie | Person;
|
||||||
|
|
||||||
|
export interface TrendingResults<T extends MediaType> {
|
||||||
|
page: number;
|
||||||
|
results: (TrendingResult<T> & {media_type: MediaType})[];
|
||||||
|
total_pages: number;
|
||||||
|
total_results: number;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user