Merge pull request #2390 from mcandeia/feat/expose-parse-filter-func

Exposing the `ParseFilter` function
This commit is contained in:
Bernd Verst 2022-12-27 14:34:58 -08:00 committed by GitHub
commit 819d2033ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 3 deletions

View File

@ -21,7 +21,8 @@ type Filter interface {
Parse(interface{}) error
}
func parseFilter(obj interface{}) (Filter, error) {
// ParseFilter parses a filter struct using the visitor pattern returning a built Filter interface.
func ParseFilter(obj interface{}) (Filter, error) {
m, ok := obj.(map[string]interface{})
if !ok {
return nil, fmt.Errorf("filter unit must be a map")
@ -134,7 +135,7 @@ func parseFilters(t string, obj interface{}) ([]Filter, error) {
filters := make([]Filter, len(arr))
for i, entry := range arr {
var err error
if filters[i], err = parseFilter(entry); err != nil {
if filters[i], err = ParseFilter(entry); err != nil {
return nil, err
}
}

View File

@ -109,7 +109,7 @@ func (q *Query) UnmarshalJSON(data []byte) error {
return nil
}
filter, err := parseFilter(q.QueryFields.Filters)
filter, err := ParseFilter(q.QueryFields.Filters)
if err != nil {
return err
}