diff options
| author | trisusilo <tri.susilo@altama.co.id> | 2023-10-03 08:27:50 +0000 |
|---|---|---|
| committer | trisusilo <tri.susilo@altama.co.id> | 2023-10-03 08:27:50 +0000 |
| commit | cf0b3bff8547783fe518351dd85debdc1e9633e4 (patch) | |
| tree | b0bc7f485865dca0eb17b8e0424a52037031dc98 /src/pages/api/shop | |
| parent | 23b667695991fafeae523aff1de7df81770461cd (diff) | |
| parent | 787d3aaa3187d3432c8e6b743b555ea3e4a4980c (diff) | |
Merged in CR/Pricelist (pull request #80)
CR/Pricelist
Diffstat (limited to 'src/pages/api/shop')
| -rw-r--r-- | src/pages/api/shop/brands.js | 44 | ||||
| -rw-r--r-- | src/pages/api/shop/search.js | 17 |
2 files changed, 54 insertions, 7 deletions
diff --git a/src/pages/api/shop/brands.js b/src/pages/api/shop/brands.js new file mode 100644 index 00000000..e93fe2c9 --- /dev/null +++ b/src/pages/api/shop/brands.js @@ -0,0 +1,44 @@ +import axios from 'axios' + +export default async function handler(req, res) { + try { + let params = '*:*' + let sort = 'sort=if(exists(sequence_i),0,1) asc,sequence_i asc, if(exists(image_s),0,1) asc ' + let rows = 2000 + + if (req.query.params) { + rows = 100 + switch (req?.query?.params) { + case 'level_s': + params = 'level_s:prioritas' + break + default: + params = `name_s:${req.query.params}` + } + } + let brands = await axios( + process.env.SOLR_HOST + + `/solr/brands/select?q=${params}&q.op=OR&indent=true&rows=${rows}&${sort}` + ) + + let dataBrands = responseMap(brands.data.response.docs) + + res.status(200).json(dataBrands) + } catch (error) { + console.error('Error fetching data from Solr:', error) + res.status(500).json({ error: 'Internal Server Error' }) + } +} + +const responseMap = (brands) => { + return brands.map((brand) => { + let brandMapping = { + id: brand.id, + name: brand.display_name_s, + logo: brand.image_s || '', + sequance: brand.sequence_i || '' + } + + return brandMapping + }) +} diff --git a/src/pages/api/shop/search.js b/src/pages/api/shop/search.js index d465d94b..7b44ef37 100644 --- a/src/pages/api/shop/search.js +++ b/src/pages/api/shop/search.js @@ -49,7 +49,8 @@ export default async function handler(req, res) { 'qf=name_s', `start=${offset}`, `rows=${limit}`, - `sort=${paramOrderBy}` + `sort=${paramOrderBy}`, + `fq=-publish_b:false` ] if (priceFrom > 0 || priceTo > 0) { @@ -103,17 +104,19 @@ const escapeSolrQuery = (query) => { const productResponseMap = (products, pricelist) => { return products.map((product) => { - let price = product.price_f || 0 + let price = product.price_tier1_v2_f || 0 let priceDiscount = product.price_discount_f || 0 let discountPercentage = product.discount_f || 0 if (pricelist) { - const pricelistDiscount = product?.[`price_${pricelist}_f`] || false - const pricelistDiscountPerc = product?.[`discount_${pricelist}_f`] || false + // const pricelistDiscount = product?.[`price_${pricelist}_f`] || false + // const pricelistDiscountPerc = product?.[`discount_${pricelist}_f`] || false - if (pricelistDiscount && pricelistDiscount > 0) priceDiscount = pricelistDiscount - if (pricelistDiscountPerc && pricelistDiscountPerc > 0) - discountPercentage = pricelistDiscountPerc + // if (pricelistDiscount && pricelistDiscount > 0) priceDiscount = pricelistDiscount + // if (pricelistDiscountPerc && pricelistDiscountPerc > 0) + // discountPercentage = pricelistDiscountPerc + + price = product?.[`price_${pricelist}_v2_f`] || 0 } if (product?.flashsale_id_i > 0) { |
