4
0
forked from crowetic/commerce

Filter by brand too

This commit is contained in:
Luis Alvarez
2020-10-13 20:16:43 -05:00
parent 63c0713151
commit fa625b5d06
4 changed files with 32 additions and 9 deletions

View File

@@ -4,13 +4,17 @@ import type { ProductsHandlers } from '../products'
// Return current cart info
const getProducts: ProductsHandlers['getProducts'] = async ({
res,
body: { search },
body: { search, category, brand },
config,
}) => {
// Use a dummy base as we only care about the relative path
const url = new URL('/v3/catalog/products', 'http://a')
if (search) url.searchParams.set('keyword', search)
if (category && Number.isInteger(Number(category)))
url.searchParams.set('categories:in', category)
if (brand && Number.isInteger(Number(brand)))
url.searchParams.set('brand_id', brand)
// We only want the id of each product
url.searchParams.set('include_fields', 'id')

View File

@@ -13,7 +13,10 @@ export type SearchProductsData = {
}
export type ProductsHandlers = {
getProducts: BigcommerceHandler<SearchProductsData, { search?: 'string' }>
getProducts: BigcommerceHandler<
SearchProductsData,
{ search?: 'string'; category?: string; brand?: string }
>
}
const METHODS = ['GET']