blob: 61732c77e3bb4042e016d02f08d79c9b6fbe8ef8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
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,
categoryIds: productHomepage.category_id_ids,
}
return productMapped
}
|