typecheck url.values for filter options

This commit is contained in:
dhax 2019-01-14 22:47:58 +01:00
parent 83b738e298
commit 37a1c61915

View file

@ -15,6 +15,8 @@ import (
var ( var (
// ErrUniqueEmailConstraint provides error message for already registered email address. // ErrUniqueEmailConstraint provides error message for already registered email address.
ErrUniqueEmailConstraint = errors.New("email already registered") ErrUniqueEmailConstraint = errors.New("email already registered")
// ErrBadParams could not parse params to filter
ErrBadParams = errors.New("bad parameters")
) )
// AdmAccountStore implements database operations for account management by admin. // AdmAccountStore implements database operations for account management by admin.
@ -38,7 +40,11 @@ type AccountFilter struct {
// NewAccountFilter returns an AccountFilter with options parsed from request url values. // NewAccountFilter returns an AccountFilter with options parsed from request url values.
func NewAccountFilter(params interface{}) (*AccountFilter, error) { func NewAccountFilter(params interface{}) (*AccountFilter, error) {
p := urlvalues.Values(params.(url.Values)) v, ok := params.(url.Values)
if !ok {
return nil, ErrBadParams
}
p := urlvalues.Values(v)
f := &AccountFilter{ f := &AccountFilter{
Pager: urlvalues.NewPager(p), Pager: urlvalues.NewPager(p),
Filter: urlvalues.NewFilter(p), Filter: urlvalues.NewFilter(p),