diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2024-09-06 10:47:09 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2024-09-06 10:47:09 +0700 |
| commit | fc635c6ce35d8b40baffb456e25342957a781940 (patch) | |
| tree | 973527421bd5294a22a4a89b99d5586c279c48f8 /src | |
| parent | 3b466589463522ded2f172474a0de533ef02d92c (diff) | |
<iman> update solr mapping category management
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/home/api/categoryManagementApi.js | 70 | ||||
| -rw-r--r-- | src/lib/home/components/CategoryDynamic.jsx | 21 |
2 files changed, 85 insertions, 6 deletions
diff --git a/src/lib/home/api/categoryManagementApi.js b/src/lib/home/api/categoryManagementApi.js index b70d60ce..54a6c1ac 100644 --- a/src/lib/home/api/categoryManagementApi.js +++ b/src/lib/home/api/categoryManagementApi.js @@ -1,8 +1,66 @@ -import odooApi from '@/core/api/odooApi' +// import odooApi from '@/core/api/odooApi' -const categoryManagementApi = async () => { - const dataCategoryManagement = await odooApi('GET', '/api/v1/categories_management') - return dataCategoryManagement -} +// const categoryManagementApi = async () => { +// const dataCategoryManagement = await odooApi('GET', '/api/v1/categories_management') +// return dataCategoryManagement +// } -export default categoryManagementApi +// export default categoryManagementApi + + + +export const fetchPopulerProductSolr = async () => { + let sort ='sort=sequence_i asc'; + try { + const response = await fetch(`/solr/category_management/query?q=*:*&q.op=OR&indent=true&${sort}`); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + const data = await response.json(); + const promotions = await map(data.response.docs); + return promotions; + } catch (error) { + console.error("Error fetching promotion data:", error); + return []; + } + }; + + const map = async (promotions) => { + console.log("promotions",promotions) + const result = []; + for (const promotion of promotions) { + console.log("promotion",promotion) + const mappedCategories = promotion.categories.map((level2) => { + console.log("level2",JSON.parse(level2)) + const childFrontend = level2.child_frontend_id_i.map((level3) => { + return { + id_level_3: level3.id_level_3, + name: level3.name, + numFound: level3.numFound, + image: level3.image + }; + }); + + return { + id_level_2: level2.id_level_2, + name: level2.name, + numFound: level2.numFound, + image: level2.image, + child_frontend_id_i: childFrontend + }; + }); + + const data = { + id: promotion.id, + category_id_i: promotion.category_id_i, + name: promotion.name_s, + sequence: promotion.sequence_i, + numFound: promotion.numFound_i, + image: promotion.image_s, + categories: mappedCategories + }; + result.push(data); + } + return result; + }; +
\ No newline at end of file diff --git a/src/lib/home/components/CategoryDynamic.jsx b/src/lib/home/components/CategoryDynamic.jsx index 14015e28..11a15d6d 100644 --- a/src/lib/home/components/CategoryDynamic.jsx +++ b/src/lib/home/components/CategoryDynamic.jsx @@ -14,6 +14,27 @@ import { Navigation, Pagination, Autoplay } from 'swiper'; const CategoryDynamic = () => { + const [manufactures, setManufactures] = useState([]) + const loadBrand = useCallback(async () => { + // setIsLoading(true) + //Get brand from odoo + /*const result = await odooApi( + 'GET', + `/api/v1/manufacture?limit=0&offset=${manufactures.length}&name=${name}` + )*/ + + // Change get brands from solr + const items = await fetchPopulerProductSolr(); + + console.log("items",items) + + // setIsLoading(false) + // setManufactures((manufactures) => [...result.data]) + }, []) + + useEffect(() => { + loadBrand() + }, [loadBrand]) const { categoryManagement } = useCategoryManagement(); // const [categoryData, setCategoryData] = useState({}); // const [subCategoryData, setSubCategoryData] = useState({}); |
