diff options
| author | Rafi Zadanly <rafizadanly@gmail.com> | 2022-11-22 17:09:05 +0700 |
|---|---|---|
| committer | Rafi Zadanly <rafizadanly@gmail.com> | 2022-11-22 17:09:05 +0700 |
| commit | 930ed6680100e9732157ed1861af3572e36219a0 (patch) | |
| tree | 2915bd480d315a410028b99d6277e9e381b38e5f /src/pages/api | |
| parent | fb4b7aea05526e154193d40a0cde6d674be263e7 (diff) | |
Filter search by brand, category, price
Diffstat (limited to 'src/pages/api')
| -rw-r--r-- | src/pages/api/shop/search.js | 11 |
1 files changed, 8 insertions, 3 deletions
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); |
