summaryrefslogtreecommitdiff
path: root/src/lib/home/api/categoryManagementApi.js
blob: 0aeb2aac84ac522d974a2a60370773606a5f489f (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
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
      };
      return productMapped;
    })
  };