diff --git a/src/clients/bucket/media/index.ts b/src/clients/bucket/media/index.ts index f454ab4..0c3f721 100644 --- a/src/clients/bucket/media/index.ts +++ b/src/clients/bucket/media/index.ts @@ -7,6 +7,7 @@ import { requestHandler } from '../../../utils/request.handler'; import { validateWriteKeyAndReturnHeaders } from '../../../utils/writeKey.validation'; import FindChaining from './lib/find.chaining'; import FindOneChaining from './lib/findOne.chaining'; +import { encodedQueryParam } from '../../../utils/generic.utils'; let headers: GenericObject; @@ -17,18 +18,16 @@ export const mediaChainMethods = ( find(query?: GenericObject) { const endpoint = `${apiConfig.apiUrl}/buckets/${ bucketConfig.bucketSlug - }/media?read_key=${bucketConfig.readKey}${ - query ? `&query=${encodeURIComponent(JSON.stringify(query))}` : '' - }`; + }/media?read_key=${bucketConfig.readKey}${encodedQueryParam(query)}`; return new FindChaining(endpoint); }, findOne>(query: NonEmptyObject) { const endpoint = `${apiConfig.apiUrl}/buckets/${ bucketConfig.bucketSlug - }/media?read_key=${bucketConfig.readKey}&limit=1${ - query ? `&query=${encodeURIComponent(JSON.stringify(query))}` : '' - }`; + }/media?read_key=${bucketConfig.readKey}&limit=1${encodedQueryParam( + query + )}`; return new FindOneChaining(endpoint); }, diff --git a/src/clients/bucket/objects/index.ts b/src/clients/bucket/objects/index.ts index 3699bb6..c5ec6bd 100644 --- a/src/clients/bucket/objects/index.ts +++ b/src/clients/bucket/objects/index.ts @@ -1,6 +1,7 @@ import HTTP_METHODS from '../../../constants/httpMethods.constants'; import { APIConfig, BucketConfig } from '../../../types/config.types'; import { GenericObject, NonEmptyObject } from '../../../types/generic.types'; +import { encodedQueryParam } from '../../../utils/generic.utils'; import { requestHandler } from '../../../utils/request.handler'; import { validateWriteKeyAndReturnHeaders } from '../../../utils/writeKey.validation'; import FindChaining from './lib/find.chaining'; @@ -15,18 +16,16 @@ export const objectsChainMethods = ( find(query: GenericObject) { const endpoint = `${apiConfig.apiUrl}/buckets/${ bucketConfig.bucketSlug - }/objects?read_key=${bucketConfig.readKey}${ - query ? `&query=${encodeURIComponent(JSON.stringify(query))}` : '' - }`; + }/objects?read_key=${bucketConfig.readKey}${encodedQueryParam(query)}`; return new FindChaining(endpoint); }, findOne>(query: NonEmptyObject) { const endpoint = `${apiConfig.apiUrl}/buckets/${ bucketConfig.bucketSlug - }/objects?read_key=${bucketConfig.readKey}&limit=1${ - query ? `&query=${encodeURIComponent(JSON.stringify(query))}` : '' - }`; + }/objects?read_key=${bucketConfig.readKey}&limit=1${encodedQueryParam( + query + )}`; return new FindOneChaining(endpoint); }, diff --git a/src/utils/generic.utils.ts b/src/utils/generic.utils.ts new file mode 100644 index 0000000..99e1387 --- /dev/null +++ b/src/utils/generic.utils.ts @@ -0,0 +1,6 @@ +import { GenericObject } from '../types/generic.types'; + +export const encodedQueryParam = (query?: GenericObject) => { + if (!query) return ''; + return `&query=${encodeURIComponent(JSON.stringify(query))}`; +};