func fromMetadata()

in sg/internal/result/result.go [20:41]


func fromMetadata(query string, metadata map[string]interface{}) (Result, error) {
	const msgField = "msg"

	if _, ok := metadata[msgField]; !ok {
		return Result{}, fmt.Errorf("rule missing %s field: %v", msgField, metadata)
	}
	if _, ok := metadata[msgField].(string); !ok {
		return Result{}, fmt.Errorf("%s field must be string: %v", msgField, metadata)
	}

	rv := fromString(query, metadata[msgField].(string))
	rv.Metadata = make(map[string]interface{})

	for k, v := range metadata {
		if k == msgField {
			continue
		}
		rv.Metadata[k] = v
	}

	return rv, nil
}