diff --git a/cart-grain.go b/cart-grain.go index 0bae3ea..9a08a62 100644 --- a/cart-grain.go +++ b/cart-grain.go @@ -133,15 +133,11 @@ func (c *CartGrain) GetCurrentState() (*FrameWithPayload, error) { return &ret, nil } -func getInt(data interface{}) (int, error) { - switch v := data.(type) { - case float64: - return int(v), nil - case int: - return v, nil - default: +func getInt(data float64, ok bool) (int, error) { + if !ok { return 0, fmt.Errorf("invalid type") } + return int(data), nil } func getItemData(sku string, qty int, country string) (*messages.AddItem, error) { @@ -149,35 +145,36 @@ func getItemData(sku string, qty int, country string) (*messages.AddItem, error) if err != nil { return nil, err } - orgPrice, _ := getInt(item.Fields[5]) + orgPrice, _ := getInt(item.GetNumberFieldValue(5)) // getInt(item.Fields[5]) - price, priceErr := getInt(item.Fields[4]) + price, priceErr := getInt(item.GetNumberFieldValue(4)) //Fields[4] if priceErr != nil { return nil, fmt.Errorf("invalid price") } stock := InStock + /*item.t if item.StockLevel == "0" || item.StockLevel == "" { stock = OutOfStock } else if item.StockLevel == "5+" { stock = LowStock - } - articleType, _ := item.Fields[1].(string) - outletGrade, ok := item.Fields[20].(string) + }*/ + articleType, _ := item.GetStringFieldValue(1) //.Fields[1].(string) + outletGrade, ok := item.GetStringFieldValue(20) //.Fields[20].(string) var outlet *string if ok { outlet = &outletGrade } - sellerId, _ := item.Fields[24].(string) - sellerName, _ := item.Fields[9].(string) + sellerId, _ := item.GetStringFieldValue(24) // .Fields[24].(string) + sellerName, _ := item.GetStringFieldValue(9) // .Fields[9].(string) - brand, _ := item.Fields[2].(string) - category, _ := item.Fields[10].(string) - category2, _ := item.Fields[11].(string) - category3, _ := item.Fields[12].(string) - category4, _ := item.Fields[13].(string) - category5, _ := item.Fields[14].(string) + brand, _ := item.GetStringFieldValue(2) //.Fields[2].(string) + category, _ := item.GetStringFieldValue(10) //.Fields[10].(string) + category2, _ := item.GetStringFieldValue(11) //.Fields[11].(string) + category3, _ := item.GetStringFieldValue(12) //.Fields[12].(string) + category4, _ := item.GetStringFieldValue(13) //Fields[13].(string) + category5, _ := item.GetStringFieldValue(14) //.Fields[14].(string) return &messages.AddItem{ ItemId: int64(item.Id),