func getFieldsArray()

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)
}