From 930ed6680100e9732157ed1861af3572e36219a0 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 22 Nov 2022 17:09:05 +0700 Subject: Filter search by brand, category, price --- src/pages/api/shop/search.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/pages/api') diff --git a/src/pages/api/shop/search.js b/src/pages/api/shop/search.js index 72db04fd..3f13f56c 100644 --- a/src/pages/api/shop/search.js +++ b/src/pages/api/shop/search.js @@ -40,7 +40,9 @@ const productResponseMap = (products) => { export default async function handler(req, res) { const { q, - page = 1 + page = 1, + brand = '', + category = '', } = req.query; let limit = 30; @@ -57,9 +59,12 @@ export default async function handler(req, res) { `start=${offset}`, `rows=${limit}`, 'sort=product_rating desc' - ].join('&'); + ]; + + if (brand) parameter.push(`fq=brand:${brand}`); + if (category) parameter.push(`fq=category_name:${category}`); - let result = await axios(process.env.SOLR_HOST + '/solr/products/select?' + parameter); + let result = await axios(process.env.SOLR_HOST + '/solr/products/select?' + parameter.join('&')); try { result.data.response.products = productResponseMap(result.data.response.docs); result.data.responseHeader.params.start = parseInt(result.data.responseHeader.params.start); -- cgit v1.2.3