summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrisusilo <tri.susilo@altama.co.id>2023-09-18 04:05:40 +0000
committertrisusilo <tri.susilo@altama.co.id>2023-09-18 04:05:40 +0000
commit74b4e3a9b86f1d3b102ad3f907237f7da1b05009 (patch)
tree78361d821acec207996afe0795cf6d3e21d4293b
parent8a04a61c1753a1bb20f45f0e70bb2a2158bd0e11 (diff)
parent4c6ad774cbb4be9a28af066c9667bd9765826a75 (diff)
Merged in CR/migrasi_product_category_homepage_to_solr (pull request #71)
migrasi category home page ke solr
-rw-r--r--src/lib/home/api/categoryHomeApi.js7
-rw-r--r--src/lib/home/components/CategoryHome.jsx10
-rw-r--r--src/pages/api/shop/product-homepage.js43
3 files changed, 53 insertions, 7 deletions
diff --git a/src/lib/home/api/categoryHomeApi.js b/src/lib/home/api/categoryHomeApi.js
index 44b77daa..9e7d1402 100644
--- a/src/lib/home/api/categoryHomeApi.js
+++ b/src/lib/home/api/categoryHomeApi.js
@@ -1,8 +1,11 @@
import odooApi from '@/core/api/odooApi'
+import axios from 'axios'
const categoryHomeIdApi = async ({ id }) => {
- const dataCategoryHomeId = await odooApi('GET', `/api/v1/product/category-homepage?id=${id}`)
- return dataCategoryHomeId
+ // const dataCategoryHomeIdO = await odooApi('GET', `/api/v1/product/category-homepage?id=${id}`)
+ // console.log('ini adalah odoo', dataCategoryHomeIdO)
+ const dataCategoryHomeId = await axios(`${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/product-homepage?id=` + id)
+ return dataCategoryHomeId.data
}
export default categoryHomeIdApi
diff --git a/src/lib/home/components/CategoryHome.jsx b/src/lib/home/components/CategoryHome.jsx
index 34c28728..9e992640 100644
--- a/src/lib/home/components/CategoryHome.jsx
+++ b/src/lib/home/components/CategoryHome.jsx
@@ -7,14 +7,14 @@ const CategoryHome = ({ id }) => {
return (
<div className='p-4 sm:py-8 relative bg-gray-100 border border-gray-200 min-h-[240px]'>
- {categoryHome?.data?.length > 0 ? (
+ {categoryHome.data ? (
<ProductSlider
products={{
- products: categoryHome.data?.[0].products,
+ products: categoryHome?.data?.products,
banner: {
- image: categoryHome.data?.[0].image,
- name: categoryHome.data?.[0].name,
- url: categoryHome.data?.[0].url
+ image: categoryHome?.data?.image,
+ name: categoryHome?.data?.name,
+ url: categoryHome?.data?.url
}
}}
simpleTitle
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
+}