diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/home/api/categoryHomeApi.js | 7 | ||||
| -rw-r--r-- | src/lib/home/components/CategoryHome.jsx | 10 | ||||
| -rw-r--r-- | src/pages/api/shop/product-homepage.js | 43 |
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 +} |
