mirror of
https://github.com/akvorado/akvorado.git
synced 2025-12-12 06:24:10 +01:00
console/filter: accept empty filters
This commit is contained in:
@@ -3,6 +3,7 @@ package console
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"akvorado/common/helpers"
|
"akvorado/common/helpers"
|
||||||
"akvorado/console/filter"
|
"akvorado/console/filter"
|
||||||
@@ -98,6 +99,10 @@ func (gf queryFilter) MarshalText() ([]byte, error) {
|
|||||||
return []byte(gf.filter), nil
|
return []byte(gf.filter), nil
|
||||||
}
|
}
|
||||||
func (gf *queryFilter) UnmarshalText(input []byte) error {
|
func (gf *queryFilter) UnmarshalText(input []byte) error {
|
||||||
|
if strings.TrimSpace(string(input)) == "" {
|
||||||
|
*gf = queryFilter{""}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
got, err := filter.Parse("", input)
|
got, err := filter.Parse("", input)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("cannot parse filter: %s", filter.HumanError(err))
|
return fmt.Errorf("cannot parse filter: %s", filter.HumanError(err))
|
||||||
|
|||||||
@@ -43,3 +43,26 @@ func TestQueryColumnSQLSelect(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUnmarshalFilter(t *testing.T) {
|
||||||
|
cases := []struct {
|
||||||
|
Input string
|
||||||
|
Expected string
|
||||||
|
}{
|
||||||
|
{"", ""},
|
||||||
|
{" ", ""},
|
||||||
|
{"SrcPort=12322", "SrcPort = 12322"},
|
||||||
|
}
|
||||||
|
for _, tc := range cases {
|
||||||
|
t.Run(tc.Input, func(t *testing.T) {
|
||||||
|
var qf queryFilter
|
||||||
|
err := qf.UnmarshalText([]byte(tc.Input))
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("UnmarshalText(%q) error:\n%+v", tc.Input, err)
|
||||||
|
}
|
||||||
|
if diff := helpers.Diff(qf.filter, tc.Expected); diff != "" {
|
||||||
|
t.Fatalf("UnmarshalText(%q) (-got, +want):\n%s", tc.Input, diff)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user