summaryrefslogtreecommitdiff
path: root/src/pages/api
diff options
context:
space:
mode:
authortrisusilo <tri.susilo@altama.co.id>2023-09-22 02:05:29 +0000
committertrisusilo <tri.susilo@altama.co.id>2023-09-22 02:05:29 +0000
commit23b667695991fafeae523aff1de7df81770461cd (patch)
tree6ce4958f4000e3db72ceddebe7ffb468eefe395b /src/pages/api
parent6ac18fd7baaf617f12f8fd6edde8a4881c547330 (diff)
parentbda91439b6ef4605a579bde8bef603b551aab3dd (diff)
Merged in Feature/popup_cart (pull request #72)
Feature/popup cart
Diffstat (limited to 'src/pages/api')
-rw-r--r--src/pages/api/shop/product-detail.js2
-rw-r--r--src/pages/api/shop/product-homepage.js43
2 files changed, 44 insertions, 1 deletions
diff --git a/src/pages/api/shop/product-detail.js b/src/pages/api/shop/product-detail.js
index 9020103b..5c3a8231 100644
--- a/src/pages/api/shop/product-detail.js
+++ b/src/pages/api/shop/product-detail.js
@@ -7,7 +7,7 @@ export default async function handler(req, res) {
)
let productVariants = await axios(
process.env.SOLR_HOST +
- `/solr/variants/select?q=template_id_i:${req.query.id}&q.op=OR&indent=true`
+ `/solr/variants/select?q=template_id_i:${req.query.id}&q.op=OR&indent=true&rows=100`
)
let { auth } = req.cookies
if (auth) auth = JSON.parse(auth)
diff --git a/src/pages/api/shop/product-homepage.js b/src/pages/api/shop/product-homepage.js
new file mode 100644
index 00000000..02c01ee0
--- /dev/null
+++ b/src/pages/api/shop/product-homepage.js
@@ -0,0 +1,43 @@
+import axios from 'axios'
+import { array } from 'yup'
+
+export default async function handler(req, res) {
+ try {
+ const products = []
+ let GetproductHomepage = await axios(
+ process.env.SOLR_HOST +
+ `/solr/product_category_homepage/select?q=id:${req.query.id}&q.op=OR&indent=true`
+ )
+ let productHomepage = GetproductHomepage.data.response.docs[0]
+ let idProducts = productHomepage.product_ids
+ await Promise.all(
+ idProducts.map(async (id) => {
+ let product = await axios(
+ `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/product-detail?id=${id}`
+ )
+ if (product && product.data.length > 0) {
+ products.push(product.data[0])
+ }
+ })
+ )
+ let result = respoonseMap(productHomepage, products)
+ res.status(200).json(result)
+ } catch (error) {
+ console.error('Error fetching data from Solr:', error)
+ res.status(500).json({ error: 'Internal Server Error' })
+ }
+}
+
+const respoonseMap = (productHomepage, products) => {
+ let productMapped ={
+ id: productHomepage.id,
+ sequence: productHomepage.sequence_i,
+ categoryId: productHomepage.category_id_i,
+ name: productHomepage.name_s,
+ image: productHomepage.image_s,
+ url: productHomepage.url_s,
+ products: products
+ }
+
+ return productMapped
+}