From f7ad601638549f024201d3ee1fa920abe7c74f64 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Fri, 6 Sep 2024 14:59:17 +0700 Subject: update mapping solr data fetch --- src/lib/home/api/categoryManagementApi.js | 82 +++++++++++-------------------- 1 file changed, 28 insertions(+), 54 deletions(-) (limited to 'src/lib/home/api') diff --git a/src/lib/home/api/categoryManagementApi.js b/src/lib/home/api/categoryManagementApi.js index 54a6c1ac..3723681c 100644 --- a/src/lib/home/api/categoryManagementApi.js +++ b/src/lib/home/api/categoryManagementApi.js @@ -1,66 +1,40 @@ -// import odooApi from '@/core/api/odooApi' - -// const categoryManagementApi = async () => { -// const dataCategoryManagement = await odooApi('GET', '/api/v1/categories_management') -// return dataCategoryManagement -// } - -// export default categoryManagementApi - - - -export const fetchPopulerProductSolr = async () => { +export const fetchCategoryManagementSolr = async () => { let sort ='sort=sequence_i asc'; try { - const response = await fetch(`/solr/category_management/query?q=*:*&q.op=OR&indent=true&${sort}`); + const response = await fetch(`/solr/category_management/query?q=*:*&q.op=OR&indent=true&${sort}&fq=categories:%5B*%20TO%20*%5D`); 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 promotions = await map(data.response.docs); + return promotions; + } catch (error) { + console.error("Error fetching promotion data:", error); + return []; + } + }; + + const map = async (promotions) => { + return promotions.map((promotion) =>{ + let parsedCategories = promotion.categories.map(category => { + // Parse string JSON utama + let parsedCategory = JSON.parse(category); + + // Parse setiap elemen di child_frontend_id_i jika ada + if (parsedCategory.child_frontend_id_i) { + parsedCategory.child_frontend_id_i = parsedCategory.child_frontend_id_i.map(child => JSON.parse(child)); + } + + return parsedCategory; }); - - const data = { + let productMapped = { id: promotion.id, - category_id_i: promotion.category_id_i, name: promotion.name_s, + image: promotion.image_s, sequence: promotion.sequence_i, numFound: promotion.numFound_i, - image: promotion.image_s, - categories: mappedCategories + categories: parsedCategories }; - result.push(data); - } - return result; - }; - \ No newline at end of file + return productMapped; + }) + }; \ No newline at end of file -- cgit v1.2.3