summaryrefslogtreecommitdiff
path: root/src/lib/home/api/categoryManagementApi.js
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-09-06 14:59:17 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-09-06 14:59:17 +0700
commitf7ad601638549f024201d3ee1fa920abe7c74f64 (patch)
tree12171aa5e8e95fade631a612424ef11011cbbdd8 /src/lib/home/api/categoryManagementApi.js
parentfc635c6ce35d8b40baffb456e25342957a781940 (diff)
<iman> update mapping solr data fetch
Diffstat (limited to 'src/lib/home/api/categoryManagementApi.js')
-rw-r--r--src/lib/home/api/categoryManagementApi.js82
1 files changed, 28 insertions, 54 deletions
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