-
Notifications
You must be signed in to change notification settings - Fork 2
/
shipping.go
61 lines (50 loc) · 1.27 KB
/
shipping.go
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package api_public
import (
"encoding/json"
"strings"
)
type PubShippingItem struct {
Name string `json:"name"`
Description string `json:"Description"`
Key string `json:"key"`
Icon string `json:"icon"`
Value string `json:"value"`
InputType string `json:"inputType"`
TotalData string `json:"totalData"`
ValMax string `json:"valMax"`
ValMin string `json:"valMin"`
HexColor string `json:"hexColor"`
Child []any `json:"child"`
IsPopular bool `json:"isPopular"`
IsNew bool `json:"isNew"`
Typename string `json:"__typename"`
}
func GetPubShippings(fname string) ([]*PubShippingItem, error) {
shippings := []*PubShippingItem{}
file, err := GetDataAllFilterConfig(fname)
if err != nil {
return shippings, err
}
defer file.Close()
hasil := generalType{}
err = json.NewDecoder(file).Decode(&hasil)
for key, value := range hasil {
if !strings.Contains(key, "filter_sort_product") {
continue
}
if value["key"] != "shipping" {
continue
}
data, err := json.Marshal(&value)
if err != nil {
return shippings, err
}
var item PubShippingItem
err = json.Unmarshal(data, &item)
if err != nil {
return shippings, err
}
shippings = append(shippings, &item)
}
return shippings, err
}