Add parseOptions function
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import { BaseEndpoint } from './base';
|
import { BaseEndpoint } from './base';
|
||||||
import { ChangeOptions, Changes } from '../types/changes';
|
import { ChangeOptions, Changes } from '../types/changes';
|
||||||
|
import { parseOptions } from '../utils';
|
||||||
|
|
||||||
|
|
||||||
export class ChangeEndpoint extends BaseEndpoint {
|
export class ChangeEndpoint extends BaseEndpoint {
|
||||||
@@ -8,23 +9,17 @@ export class ChangeEndpoint extends BaseEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async movies(options?: ChangeOptions): Promise<Changes> {
|
async movies(options?: ChangeOptions): Promise<Changes> {
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<Changes>(`/movie/changes?${params}`);
|
return await this.api.get<Changes>(`/movie/changes?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async tvShows(options?: ChangeOptions): Promise<Changes> {
|
async tvShows(options?: ChangeOptions): Promise<Changes> {
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<Changes>(`/tv/changes?${params}`);
|
return await this.api.get<Changes>(`/tv/changes?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async person(options?: ChangeOptions): Promise<Changes> {
|
async person(options?: ChangeOptions): Promise<Changes> {
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<Changes>(`/person/changes${params}`);
|
return await this.api.get<Changes>(`/person/changes${params}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { DetailedCollection, ImageCollection, LanguageOption, Translations } from '../types';
|
import { DetailedCollection, ImageCollection, LanguageOption, Translations } from '../types';
|
||||||
|
import { parseOptions } from '../utils';
|
||||||
import { BaseEndpoint } from './base';
|
import { BaseEndpoint } from './base';
|
||||||
|
|
||||||
const BASE_COLLECTION = '/collection';
|
const BASE_COLLECTION = '/collection';
|
||||||
@@ -9,23 +10,17 @@ export class CollectionsEndpoint extends BaseEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async details(id: number, options? : LanguageOption): Promise<DetailedCollection> {
|
async details(id: number, options? : LanguageOption): Promise<DetailedCollection> {
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<DetailedCollection>(`${BASE_COLLECTION}/${id}?${params}`);
|
return await this.api.get<DetailedCollection>(`${BASE_COLLECTION}/${id}?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async images(id: number, options? : LanguageOption): Promise<ImageCollection> {
|
async images(id: number, options? : LanguageOption): Promise<ImageCollection> {
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<ImageCollection>(`${BASE_COLLECTION}/${id}/images?${params}`);
|
return await this.api.get<ImageCollection>(`${BASE_COLLECTION}/${id}/images?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async translations(id: number, options? : LanguageOption): Promise<Translations> {
|
async translations(id: number, options? : LanguageOption): Promise<Translations> {
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<Translations>(`${BASE_COLLECTION}/${id}/translations?${params}`);
|
return await this.api.get<Translations>(`${BASE_COLLECTION}/${id}/translations?${params}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import { MovieDiscoverResult, SortOption, TvShowDiscoverResult } from '../types';
|
import { MovieDiscoverResult, SortOption, TvShowDiscoverResult } from '../types';
|
||||||
|
import { parseOptions } from '../utils';
|
||||||
import { BaseEndpoint } from './base';
|
import { BaseEndpoint } from './base';
|
||||||
|
|
||||||
const BASE_DISCOVER = '/discover';
|
const BASE_DISCOVER = '/discover';
|
||||||
@@ -65,16 +66,12 @@ export class DiscoverEndpoint extends BaseEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async movie(options?: MovieQueryOptions): Promise<MovieDiscoverResult> {
|
async movie(options?: MovieQueryOptions): Promise<MovieDiscoverResult> {
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<MovieDiscoverResult>(`${BASE_DISCOVER}/movie?${params}`);
|
return await this.api.get<MovieDiscoverResult>(`${BASE_DISCOVER}/movie?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async tvShow(options?: TvShowQueryOptions): Promise<TvShowDiscoverResult> {
|
async tvShow(options?: TvShowQueryOptions): Promise<TvShowDiscoverResult> {
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<TvShowDiscoverResult>(`${BASE_DISCOVER}/tv?${params}`);
|
return await this.api.get<TvShowDiscoverResult>(`${BASE_DISCOVER}/tv?${params}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { BaseEndpoint } from './base';
|
import { BaseEndpoint } from './base';
|
||||||
import { ExternalIdOptions, FindResult } from '../types';
|
import { ExternalIdOptions, FindResult } from '../types';
|
||||||
|
import { parseOptions } from '../utils';
|
||||||
|
|
||||||
export class FindEndpoint extends BaseEndpoint {
|
export class FindEndpoint extends BaseEndpoint {
|
||||||
constructor(accessToken: string) {
|
constructor(accessToken: string) {
|
||||||
@@ -7,7 +8,7 @@ export class FindEndpoint extends BaseEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async byId(externalId: string, options: ExternalIdOptions): Promise<FindResult> {
|
async byId(externalId: string, options: ExternalIdOptions): Promise<FindResult> {
|
||||||
const params = new URLSearchParams(Object.entries(options)).toString();
|
const params = parseOptions(options);
|
||||||
return await this.api.get<FindResult>(`/find/${externalId}?${params}`);
|
return await this.api.get<FindResult>(`/find/${externalId}?${params}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { BaseEndpoint } from './base';
|
import { BaseEndpoint } from './base';
|
||||||
import { BelongingMovies, Keyword, KeywordsOptions } from '../types';
|
import { BelongingMovies, Keyword, KeywordsOptions } from '../types';
|
||||||
|
import { parseOptions } from '../utils';
|
||||||
|
|
||||||
const BASE_Keyword = '/keyword';
|
const BASE_Keyword = '/keyword';
|
||||||
|
|
||||||
@@ -13,9 +14,7 @@ export class KeywordsEndpoint extends BaseEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async belongingMovies(keywordId : number, options?: KeywordsOptions): Promise<BelongingMovies> {
|
async belongingMovies(keywordId : number, options?: KeywordsOptions): Promise<BelongingMovies> {
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<BelongingMovies>(`${BASE_Keyword}/${keywordId}/movies?${params}`);
|
return await this.api.get<BelongingMovies>(`${BASE_Keyword}/${keywordId}/movies?${params}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import {
|
|||||||
Videos,
|
Videos,
|
||||||
WatchProviders,
|
WatchProviders,
|
||||||
} from '../types';
|
} from '../types';
|
||||||
|
import { parseOptions } from '../utils';
|
||||||
|
|
||||||
const BASE_MOVIE = '/movie';
|
const BASE_MOVIE = '/movie';
|
||||||
|
|
||||||
@@ -41,9 +42,7 @@ export class MoviesEndpoint extends BaseEndpoint{
|
|||||||
}
|
}
|
||||||
|
|
||||||
async changes(id: number, options?: ChangeOptions): Promise<MovieChanges>{
|
async changes(id: number, options?: ChangeOptions): Promise<MovieChanges>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<MovieChanges>(`${BASE_MOVIE}/${id}/changes?${params}`);
|
return await this.api.get<MovieChanges>(`${BASE_MOVIE}/${id}/changes?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,16 +63,12 @@ export class MoviesEndpoint extends BaseEndpoint{
|
|||||||
}
|
}
|
||||||
|
|
||||||
async lists(id: number, options?: LanguageOption | PageOption): Promise<MovieLists>{
|
async lists(id: number, options?: LanguageOption | PageOption): Promise<MovieLists>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<MovieLists>(`${BASE_MOVIE}/${id}/lists?${params}`);
|
return await this.api.get<MovieLists>(`${BASE_MOVIE}/${id}/lists?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async recommendations(id: number, options?: PageOption): Promise<Recommendations>{
|
async recommendations(id: number, options?: PageOption): Promise<Recommendations>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<Recommendations>(`${BASE_MOVIE}/${id}/recommendations?${params}`);
|
return await this.api.get<Recommendations>(`${BASE_MOVIE}/${id}/recommendations?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,16 +77,12 @@ export class MoviesEndpoint extends BaseEndpoint{
|
|||||||
}
|
}
|
||||||
|
|
||||||
async reviews(id: number, options?: PageOption): Promise<Reviews>{
|
async reviews(id: number, options?: PageOption): Promise<Reviews>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<Reviews>(`${BASE_MOVIE}/${id}/reviews?${params}`);
|
return await this.api.get<Reviews>(`${BASE_MOVIE}/${id}/reviews?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async similar(id: number, options?: PageOption): Promise<SimilarMovies>{
|
async similar(id: number, options?: PageOption): Promise<SimilarMovies>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<SimilarMovies>(`${BASE_MOVIE}/${id}/similar?${params}`);
|
return await this.api.get<SimilarMovies>(`${BASE_MOVIE}/${id}/similar?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,30 +107,22 @@ export class MoviesEndpoint extends BaseEndpoint{
|
|||||||
}
|
}
|
||||||
|
|
||||||
async nowPlaying(options?: PageOption & LanguageOption & RegionOption): Promise<MoviesPlayingNow>{
|
async nowPlaying(options?: PageOption & LanguageOption & RegionOption): Promise<MoviesPlayingNow>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<MoviesPlayingNow>(`${BASE_MOVIE}/now_playing?${params}`);
|
return await this.api.get<MoviesPlayingNow>(`${BASE_MOVIE}/now_playing?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async popular(options?: PageOption): Promise<PopularMovies>{
|
async popular(options?: PageOption): Promise<PopularMovies>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<PopularMovies>(`${BASE_MOVIE}/popular?${params}`);
|
return await this.api.get<PopularMovies>(`${BASE_MOVIE}/popular?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async topRated(options?: PageOption & LanguageOption & RegionOption): Promise<TopRatedMovies>{
|
async topRated(options?: PageOption & LanguageOption & RegionOption): Promise<TopRatedMovies>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<TopRatedMovies>(`${BASE_MOVIE}/top_rated?${params}`);
|
return await this.api.get<TopRatedMovies>(`${BASE_MOVIE}/top_rated?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async upcoming(options?: PageOption & LanguageOption & RegionOption): Promise<UpcomingMovies>{
|
async upcoming(options?: PageOption & LanguageOption & RegionOption): Promise<UpcomingMovies>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<UpcomingMovies>(`${BASE_MOVIE}/upcoming?${params}`);
|
return await this.api.get<UpcomingMovies>(`${BASE_MOVIE}/upcoming?${params}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import {
|
|||||||
PopularPersons,
|
PopularPersons,
|
||||||
TaggedImages
|
TaggedImages
|
||||||
} from '../types';
|
} from '../types';
|
||||||
|
import { parseOptions } from '../utils';
|
||||||
import { BaseEndpoint } from './base';
|
import { BaseEndpoint } from './base';
|
||||||
|
|
||||||
const BASE_PERSON = '/person';
|
const BASE_PERSON = '/person';
|
||||||
@@ -26,9 +27,7 @@ export class PeopleEndpoint extends BaseEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async changes(id: number, options? : ChangeOptions): Promise<PersonChanges> {
|
async changes(id: number, options? : ChangeOptions): Promise<PersonChanges> {
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<PersonChanges>(`${BASE_PERSON}/${id}/changes?${params}`);
|
return await this.api.get<PersonChanges>(`${BASE_PERSON}/${id}/changes?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,9 +52,7 @@ export class PeopleEndpoint extends BaseEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async taggedImages(id: number, options?: PageOption): Promise<TaggedImages>{
|
async taggedImages(id: number, options?: PageOption): Promise<TaggedImages>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<TaggedImages>(`${BASE_PERSON}/${id}/tagged_images?${params}`);
|
return await this.api.get<TaggedImages>(`${BASE_PERSON}/${id}/tagged_images?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,9 +65,7 @@ export class PeopleEndpoint extends BaseEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async popular(options?: PageOption): Promise<PopularPersons>{
|
async popular(options?: PageOption): Promise<PopularPersons>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<PopularPersons>(`${BASE_PERSON}/popular?${params}`);
|
return await this.api.get<PopularPersons>(`${BASE_PERSON}/popular?${params}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { BaseEndpoint } from './base';
|
import { BaseEndpoint } from './base';
|
||||||
import { Search } from '../types/search';
|
import { Search } from '../types/search';
|
||||||
import { Collection, Company, Movie, Person, TV } from '../types';
|
import { Collection, Company, Movie, Person, TV } from '../types';
|
||||||
|
import { parseOptions } from '../utils';
|
||||||
|
|
||||||
const BASE_SEARCH = '/search';
|
const BASE_SEARCH = '/search';
|
||||||
|
|
||||||
@@ -30,34 +31,34 @@ export class SearchEndpoint extends BaseEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async companies(options: SearchOptions): Promise<Search<Company>>{
|
async companies(options: SearchOptions): Promise<Search<Company>>{
|
||||||
const params = new URLSearchParams(Object.entries(options)).toString();
|
const params = parseOptions(options);
|
||||||
return await this.api.get<Search<Company>>(`${BASE_SEARCH}/company?${params}`);
|
return await this.api.get<Search<Company>>(`${BASE_SEARCH}/company?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async collections(options: SearchOptions): Promise<Search<Collection>>{
|
async collections(options: SearchOptions): Promise<Search<Collection>>{
|
||||||
const params = new URLSearchParams(Object.entries(options)).toString();
|
const params = parseOptions(options);
|
||||||
return await this.api.get<Search<Collection>>(`${BASE_SEARCH}/collection?${params}`);
|
return await this.api.get<Search<Collection>>(`${BASE_SEARCH}/collection?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async keywords(options: SearchOptions): Promise<Search<{ id: string, name: string }>>{
|
async keywords(options: SearchOptions): Promise<Search<{ id: string, name: string }>>{
|
||||||
const params = new URLSearchParams(Object.entries(options)).toString();
|
const params = parseOptions(options);
|
||||||
return await this.api.get<Search<{ id: string, name: string }>>(`${BASE_SEARCH}/keyword?${params}`);
|
return await this.api.get<Search<{ id: string, name: string }>>(`${BASE_SEARCH}/keyword?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async movies(options: MovieSearchOptions): Promise<Search<Movie>>{
|
async movies(options: MovieSearchOptions): Promise<Search<Movie>>{
|
||||||
const params = new URLSearchParams(Object.entries(options)).toString();
|
const params = parseOptions(options);
|
||||||
return await this.api.get<Search<Movie>>(`${BASE_SEARCH}/movie?${params}`);
|
return await this.api.get<Search<Movie>>(`${BASE_SEARCH}/movie?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async people(options: PeopleSearchOptions): Promise<Search<Person>>{
|
async people(options: PeopleSearchOptions): Promise<Search<Person>>{
|
||||||
const params = new URLSearchParams(Object.entries(options)).toString();
|
const params = parseOptions(options);
|
||||||
return await this.api.get<Search<Person>>(`${BASE_SEARCH}/person?${params}`);
|
return await this.api.get<Search<Person>>(`${BASE_SEARCH}/person?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Multi search
|
// TODO: Multi search
|
||||||
|
|
||||||
async tvShows(options: TvSearchOptions): Promise<Search<TV>>{
|
async tvShows(options: TvSearchOptions): Promise<Search<TV>>{
|
||||||
const params = new URLSearchParams(Object.entries(options)).toString();
|
const params = parseOptions(options);
|
||||||
return await this.api.get<Search<TV>>(`${BASE_SEARCH}/tv?${params}`);
|
return await this.api.get<Search<TV>>(`${BASE_SEARCH}/tv?${params}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import {
|
|||||||
Videos,
|
Videos,
|
||||||
WatchProviders,
|
WatchProviders,
|
||||||
} from '../types';
|
} from '../types';
|
||||||
|
import { parseOptions } from '../utils';
|
||||||
|
|
||||||
const BASE_TV = '/tv';
|
const BASE_TV = '/tv';
|
||||||
|
|
||||||
@@ -44,9 +45,7 @@ export class TvShowsEndpoint extends BaseEndpoint{
|
|||||||
}
|
}
|
||||||
|
|
||||||
async changes(id: number, options?: ChangeOptions): Promise<TvShowChanges>{
|
async changes(id: number, options?: ChangeOptions): Promise<TvShowChanges>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<TvShowChanges>(`${BASE_TV}/${id}/changes?${params}`);
|
return await this.api.get<TvShowChanges>(`${BASE_TV}/${id}/changes?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,16 +78,12 @@ export class TvShowsEndpoint extends BaseEndpoint{
|
|||||||
}
|
}
|
||||||
|
|
||||||
async recommendations(id: number, options?: PageOption): Promise<Recommendations>{
|
async recommendations(id: number, options?: PageOption): Promise<Recommendations>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<Recommendations>(`${BASE_TV}/${id}/recommendations?${params}`);
|
return await this.api.get<Recommendations>(`${BASE_TV}/${id}/recommendations?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async reviews(id: number, options?: PageOption): Promise<Reviews>{
|
async reviews(id: number, options?: PageOption): Promise<Reviews>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<Reviews>(`${BASE_TV}/${id}/reviews?${params}`);
|
return await this.api.get<Reviews>(`${BASE_TV}/${id}/reviews?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,9 +92,7 @@ export class TvShowsEndpoint extends BaseEndpoint{
|
|||||||
}
|
}
|
||||||
|
|
||||||
async similar(id: number, options?: PageOption): Promise<SimilarTvShows>{
|
async similar(id: number, options?: PageOption): Promise<SimilarTvShows>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<SimilarTvShows>(`${BASE_TV}/${id}/similar?${params}`);
|
return await this.api.get<SimilarTvShows>(`${BASE_TV}/${id}/similar?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,23 +121,17 @@ export class TvShowsEndpoint extends BaseEndpoint{
|
|||||||
}
|
}
|
||||||
|
|
||||||
async airingToday(options?: PageOption & LanguageOption & RegionOption): Promise<TvShowsAiringToday>{
|
async airingToday(options?: PageOption & LanguageOption & RegionOption): Promise<TvShowsAiringToday>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<TvShowsAiringToday>(`${BASE_TV}/airing_today?${params}`);
|
return await this.api.get<TvShowsAiringToday>(`${BASE_TV}/airing_today?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async popular(options?: PageOption & LanguageOption & RegionOption): Promise<PopularTvShows>{
|
async popular(options?: PageOption & LanguageOption & RegionOption): Promise<PopularTvShows>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<PopularTvShows>(`${BASE_TV}/popular?${params}`);
|
return await this.api.get<PopularTvShows>(`${BASE_TV}/popular?${params}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async topRated(options?: PageOption & LanguageOption & RegionOption): Promise<TopRatedTvShows>{
|
async topRated(options?: PageOption & LanguageOption & RegionOption): Promise<TopRatedTvShows>{
|
||||||
const params = options
|
const params = parseOptions(options);
|
||||||
? new URLSearchParams(Object.entries(options)).toString()
|
|
||||||
: '';
|
|
||||||
return await this.api.get<TopRatedTvShows>(`${BASE_TV}/top_rated?${params}`);
|
return await this.api.get<TopRatedTvShows>(`${BASE_TV}/top_rated?${params}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
export * from './getImagePath';
|
export * from './getImagePath';
|
||||||
|
export * from './parseOptions';
|
||||||
|
|||||||
7
src/utils/parseOptions.ts
Normal file
7
src/utils/parseOptions.ts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
export function parseOptions(
|
||||||
|
options?: { [s: string]: any },
|
||||||
|
): string {
|
||||||
|
return options
|
||||||
|
? new URLSearchParams(Object.entries(options)).toString()
|
||||||
|
: '';
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user