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}&&rows=20` ); 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) => { 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; }); let productMapped = { id: promotion.id, name: promotion.name_s, image: promotion.image_s, sequence: promotion.sequence_i, numFound: promotion.numFound_i, categories: parsedCategories, category_id: promotion.category_id_i, }; return productMapped; }); }; export const fetchCategoryManagementVersion = async () => { const response = await fetch( '/solr/admin/cores?action=STATUS&core=category_management' ); const data = await response.json(); return data.status.category_management.index.version; };