summaryrefslogtreecommitdiff
path: root/src/pages/api
diff options
context:
space:
mode:
authorRafi Zadanly <rafizadanly@gmail.com>2022-11-22 17:09:05 +0700
committerRafi Zadanly <rafizadanly@gmail.com>2022-11-22 17:09:05 +0700
commit930ed6680100e9732157ed1861af3572e36219a0 (patch)
tree2915bd480d315a410028b99d6277e9e381b38e5f /src/pages/api
parentfb4b7aea05526e154193d40a0cde6d674be263e7 (diff)
Filter search by brand, category, price
Diffstat (limited to 'src/pages/api')
-rw-r--r--src/pages/api/shop/search.js11
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);