github.com/kyleu/dbaudit@v0.0.2-0.20240321155047-ff2f2c940496/app/lib/filter/paramset.go (about) 1 // Package filter - Content managed by Project Forge, see [projectforge.md] for details. 2 package filter 3 4 import ( 5 "strings" 6 7 "github.com/samber/lo" 8 9 "github.com/kyleu/dbaudit/app/util" 10 ) 11 12 type ParamSet map[string]*Params 13 14 func (s ParamSet) Get(key string, allowed []string, logger util.Logger) *Params { 15 x, ok := s[key] 16 if !ok { 17 return &Params{Key: key} 18 } 19 return x.Filtered(allowed, logger).Sanitize(key) 20 } 21 22 func (s ParamSet) Specifies(key string) bool { 23 x, ok := s[key] 24 if !ok { 25 return false 26 } 27 return !x.IsDefault() 28 } 29 30 func (s ParamSet) String() string { 31 return strings.Join(lo.Map(lo.Values(s), func(p *Params, _ int) string { 32 return p.String() 33 }), ", ") 34 }