Add parseOptions function

This commit is contained in:
Tobias Karlsson
2023-04-04 08:13:31 +02:00
parent 3ce67c63c5
commit 1e006a5854
11 changed files with 53 additions and 92 deletions

View File

@@ -27,6 +27,7 @@ import {
Videos,
WatchProviders,
} from '../types';
import { parseOptions } from '../utils';
const BASE_TV = '/tv';
@@ -44,9 +45,7 @@ export class TvShowsEndpoint extends BaseEndpoint{
}
async changes(id: number, options?: ChangeOptions): Promise<TvShowChanges>{
const params = options
? new URLSearchParams(Object.entries(options)).toString()
: '';
const params = parseOptions(options);
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>{
const params = options
? new URLSearchParams(Object.entries(options)).toString()
: '';
const params = parseOptions(options);
return await this.api.get<Recommendations>(`${BASE_TV}/${id}/recommendations?${params}`);
}
async reviews(id: number, options?: PageOption): Promise<Reviews>{
const params = options
? new URLSearchParams(Object.entries(options)).toString()
: '';
const params = parseOptions(options);
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>{
const params = options
? new URLSearchParams(Object.entries(options)).toString()
: '';
const params = parseOptions(options);
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>{
const params = options
? new URLSearchParams(Object.entries(options)).toString()
: '';
const params = parseOptions(options);
return await this.api.get<TvShowsAiringToday>(`${BASE_TV}/airing_today?${params}`);
}
async popular(options?: PageOption & LanguageOption & RegionOption): Promise<PopularTvShows>{
const params = options
? new URLSearchParams(Object.entries(options)).toString()
: '';
const params = parseOptions(options);
return await this.api.get<PopularTvShows>(`${BASE_TV}/popular?${params}`);
}
async topRated(options?: PageOption & LanguageOption & RegionOption): Promise<TopRatedTvShows>{
const params = options
? new URLSearchParams(Object.entries(options)).toString()
: '';
const params = parseOptions(options);
return await this.api.get<TopRatedTvShows>(`${BASE_TV}/top_rated?${params}`);
}
}