From f44f1081ca75b0938db65ef98ab4e66fa0d8db86 Mon Sep 17 00:00:00 2001 From: Tobias Karlsson Date: Wed, 29 Mar 2023 21:29:56 +0200 Subject: [PATCH] Do not use undefined params --- src/endpoints/collections.ts | 14 +++++++----- src/endpoints/keywords.ts | 5 +++-- src/endpoints/movies.ts | 36 +++++++++++++++---------------- src/endpoints/people.ts | 18 ++++++++-------- src/endpoints/tv-shows.ts | 42 ++++++++++++++++++------------------ src/types/keywords.ts | 3 +-- src/types/options.ts | 10 ++++----- 7 files changed, 65 insertions(+), 63 deletions(-) diff --git a/src/endpoints/collections.ts b/src/endpoints/collections.ts index 386fb6d..134df30 100644 --- a/src/endpoints/collections.ts +++ b/src/endpoints/collections.ts @@ -1,6 +1,5 @@ import { DetailedCollection, ImageCollection, LanguageOption, Translations } from '../types'; import { BaseEndpoint } from './base'; -import querystring from 'querystring'; const BASE_COLLECTION = '/collection'; @@ -10,18 +9,23 @@ export class CollectionsEndpoint extends BaseEndpoint { } async details(id: number, options? : LanguageOption): Promise { - const params = querystring.encode(options); + const params = options + ? new URLSearchParams(Object.entries(options)).toString() + : ''; return await this.api.get(`${BASE_COLLECTION}/${id}?${params}`); } async images(id: number, options? : LanguageOption): Promise { - const params = querystring.encode(options); + const params = options + ? new URLSearchParams(Object.entries(options)).toString() + : ''; return await this.api.get(`${BASE_COLLECTION}/${id}/images?${params}`); } async translations(id: number, options? : LanguageOption): Promise { - const params = querystring.encode(options); + const params = options + ? new URLSearchParams(Object.entries(options)).toString() + : ''; return await this.api.get(`${BASE_COLLECTION}/${id}/translations?${params}`); } - } \ No newline at end of file diff --git a/src/endpoints/keywords.ts b/src/endpoints/keywords.ts index 818189e..df112b8 100644 --- a/src/endpoints/keywords.ts +++ b/src/endpoints/keywords.ts @@ -1,5 +1,4 @@ import { BaseEndpoint } from './base'; -import querystring from 'querystring'; import { BelongingMovies, Keyword, KeywordsOptions } from '../types'; const BASE_Keyword = '/keyword'; @@ -14,7 +13,9 @@ export class KeywordsEndpoint extends BaseEndpoint { } async belongingMovies(keywordId : number, options?: KeywordsOptions): Promise { - const params = querystring.encode(options); + const params = options + ? new URLSearchParams(Object.entries(options)).toString() + : ''; return await this.api.get(`${BASE_Keyword}/${keywordId}/movies?${params}`); } } diff --git a/src/endpoints/movies.ts b/src/endpoints/movies.ts index e967a1f..e32b682 100644 --- a/src/endpoints/movies.ts +++ b/src/endpoints/movies.ts @@ -40,8 +40,8 @@ export class MoviesEndpoint extends BaseEndpoint{ } async changes(id: number, options?: ChangeOptions): Promise{ - const params = options - ? new URLSearchParams(Object.entries(options)).toString() + const params = options + ? new URLSearchParams(Object.entries(options)).toString() : ''; return await this.api.get(`${BASE_MOVIE}/${id}/changes?${params}`); } @@ -63,15 +63,15 @@ export class MoviesEndpoint extends BaseEndpoint{ } async lists(id: number, options?: PageOptions): Promise{ - const params = options - ? new URLSearchParams(Object.entries(options)).toString() + const params = options + ? new URLSearchParams(Object.entries(options)).toString() : ''; return await this.api.get(`${BASE_MOVIE}/${id}/lists?${params}`); } async recommendations(id: number, options?: PageOptions): Promise{ - const params = options - ? new URLSearchParams(Object.entries(options)).toString() + const params = options + ? new URLSearchParams(Object.entries(options)).toString() : ''; return await this.api.get(`${BASE_MOVIE}/${id}/recommendations?${params}`); } @@ -81,15 +81,15 @@ export class MoviesEndpoint extends BaseEndpoint{ } async reviews(id: number, options?: PageOptions): Promise{ - const params = options - ? new URLSearchParams(Object.entries(options)).toString() + const params = options + ? new URLSearchParams(Object.entries(options)).toString() : ''; return await this.api.get(`${BASE_MOVIE}/${id}/reviews?${params}`); } async similar(id: number, options?: PageOptions): Promise{ - const params = options - ? new URLSearchParams(Object.entries(options)).toString() + const params = options + ? new URLSearchParams(Object.entries(options)).toString() : ''; return await this.api.get(`${BASE_MOVIE}/${id}/similar?${params}`); } @@ -115,29 +115,29 @@ export class MoviesEndpoint extends BaseEndpoint{ } async nowPlaying(options?: LocaleOptions): Promise{ - const params = options - ? new URLSearchParams(Object.entries(options)).toString() + const params = options + ? new URLSearchParams(Object.entries(options)).toString() : ''; return await this.api.get(`${BASE_MOVIE}/now_playing?${params}`); } async popular(options?: PageOptions): Promise{ - const params = options - ? new URLSearchParams(Object.entries(options)).toString() + const params = options + ? new URLSearchParams(Object.entries(options)).toString() : ''; return await this.api.get(`${BASE_MOVIE}/popular?${params}`); } async topRated(options?: LocaleOptions): Promise{ - const params = options - ? new URLSearchParams(Object.entries(options)).toString() + const params = options + ? new URLSearchParams(Object.entries(options)).toString() : ''; return await this.api.get(`${BASE_MOVIE}/top_rated?${params}`); } async upcoming(options?: LocaleOptions): Promise{ - const params = options - ? new URLSearchParams(Object.entries(options)).toString() + const params = options + ? new URLSearchParams(Object.entries(options)).toString() : ''; return await this.api.get(`${BASE_MOVIE}/upcoming?${params}`); } diff --git a/src/endpoints/people.ts b/src/endpoints/people.ts index a17b1f6..d3bbbc9 100644 --- a/src/endpoints/people.ts +++ b/src/endpoints/people.ts @@ -13,9 +13,9 @@ export class PeopleEndpoint extends BaseEndpoint { } async changes(id: number, options? : ChangeOptions): Promise { - const params = options == undefined - ? undefined - : new URLSearchParams(Object.entries(options)).toString(); + const params = options + ? new URLSearchParams(Object.entries(options)).toString() + : ''; return await this.api.get(`${BASE_PERSON}/${id}/changes?${params}`); } @@ -40,9 +40,9 @@ export class PeopleEndpoint extends BaseEndpoint { } async taggedImages(id: number, options?: PageOptions): Promise{ - const params = options == undefined - ? undefined - : new URLSearchParams(Object.entries(options)).toString(); + const params = options + ? new URLSearchParams(Object.entries(options)).toString() + : ''; return await this.api.get(`${BASE_PERSON}/${id}/tagged_images?${params}`); } @@ -55,9 +55,9 @@ export class PeopleEndpoint extends BaseEndpoint { } async popular(options?: PageOptions): Promise{ - const params = options == undefined - ? undefined - : new URLSearchParams(Object.entries(options)).toString(); + const params = options + ? new URLSearchParams(Object.entries(options)).toString() + : ''; return await this.api.get(`${BASE_PERSON}/popular?${params}`); } } diff --git a/src/endpoints/tv-shows.ts b/src/endpoints/tv-shows.ts index f3d807d..48de437 100644 --- a/src/endpoints/tv-shows.ts +++ b/src/endpoints/tv-shows.ts @@ -43,9 +43,9 @@ export class TvShowsEndpoint extends BaseEndpoint{ } async changes(id: number, options?: ChangeOptions): Promise{ - const params = options == undefined - ? undefined - : new URLSearchParams(Object.entries(options)).toString(); + const params = options + ? new URLSearchParams(Object.entries(options)).toString() + : ''; return await this.api.get(`${BASE_TV}/${id}/changes?${params}`); } @@ -78,16 +78,16 @@ export class TvShowsEndpoint extends BaseEndpoint{ } async recommendations(id: number, options?: PageOptions): Promise{ - const params = options == undefined - ? undefined - : new URLSearchParams(Object.entries(options)).toString(); + const params = options + ? new URLSearchParams(Object.entries(options)).toString() + : ''; return await this.api.get(`${BASE_TV}/${id}/recommendations?${params}`); } async reviews(id: number, options?: PageOptions): Promise{ - const params = options == undefined - ? undefined - : new URLSearchParams(Object.entries(options)).toString(); + const params = options + ? new URLSearchParams(Object.entries(options)).toString() + : ''; return await this.api.get(`${BASE_TV}/${id}/reviews?${params}`); } @@ -96,9 +96,9 @@ export class TvShowsEndpoint extends BaseEndpoint{ } async similar(id: number, options?: PageOptions): Promise{ - const params = options == undefined - ? undefined - : new URLSearchParams(Object.entries(options)).toString(); + const params = options + ? new URLSearchParams(Object.entries(options)).toString() + : ''; return await this.api.get(`${BASE_TV}/${id}/similar?${params}`); } @@ -127,23 +127,23 @@ export class TvShowsEndpoint extends BaseEndpoint{ } async airingToday(options?: LocaleOptions): Promise{ - const params = options == undefined - ? undefined - : new URLSearchParams(Object.entries(options)).toString(); + const params = options + ? new URLSearchParams(Object.entries(options)).toString() + : ''; return await this.api.get(`${BASE_TV}/airing_today?${params}`); } async popular(options?: PageOptions): Promise{ - const params = options == undefined - ? undefined - : new URLSearchParams(Object.entries(options)).toString(); + const params = options + ? new URLSearchParams(Object.entries(options)).toString() + : ''; return await this.api.get(`${BASE_TV}/popular?${params}`); } async topRated(options?: LocaleOptions): Promise{ - const params = options == undefined - ? undefined - : new URLSearchParams(Object.entries(options)).toString(); + const params = options + ? new URLSearchParams(Object.entries(options)).toString() + : ''; return await this.api.get(`${BASE_TV}/top_rated?${params}`); } } diff --git a/src/types/keywords.ts b/src/types/keywords.ts index f820bed..6393160 100644 --- a/src/types/keywords.ts +++ b/src/types/keywords.ts @@ -1,7 +1,6 @@ -import { ParsedUrlQueryInput } from 'querystring'; import { Movie } from '.'; -export interface KeywordsOptions extends ParsedUrlQueryInput { +export interface KeywordsOptions { include_adult?: boolean; language?: string; } diff --git a/src/types/options.ts b/src/types/options.ts index 2f30fb4..f0b0437 100644 --- a/src/types/options.ts +++ b/src/types/options.ts @@ -1,9 +1,7 @@ -import { ParsedUrlQueryInput } from 'querystring'; - -export interface LanguageOption extends ParsedUrlQueryInput { - language?: string; +export interface LanguageOption { + language?: string; } -export interface PageOption extends ParsedUrlQueryInput { - page?: number; +export interface PageOption { + page?: number; }