in packages/datastream.go [391:418]
func getFieldsArray(allFields []util.MapStr, searchedName string) ([]util.MapStr, error) {
for _, fields := range allFields {
name, err := fields.GetValue("name")
if err != nil {
return nil, fmt.Errorf("cannot get value (key: name): %w", err)
}
if name == searchedName {
value, err := fields.GetValue("fields")
if err != nil {
return nil, fmt.Errorf("cannot get fields: %w", err)
}
if inArray, ok := value.([]interface{}); ok {
m := make([]util.MapStr, 0, len(inArray))
for _, in := range inArray {
mapStr, err := createMapStr(in)
if err != nil {
return nil, fmt.Errorf("cannot create MapStr: %w", err)
}
m = append(m, mapStr)
}
return m, nil
}
return nil, fmt.Errorf("fields was not []MapStr")
}
}
return nil, fmt.Errorf("field '%s' not found", searchedName)
}