diff options
Diffstat (limited to 'internal/api/params.go')
| -rw-r--r-- | internal/api/params.go | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/internal/api/params.go b/internal/api/params.go index e126fb2a..255a6128 100644 --- a/internal/api/params.go +++ b/internal/api/params.go @@ -9,6 +9,8 @@ import ( "net/url" "reflect" "strconv" + + "golang.org/x/pkgsite/internal/derrors" ) // ListParams are common pagination and filtering parameters. @@ -82,9 +84,12 @@ type VulnParams struct { func ParseParams(v url.Values, dst any) error { val := reflect.ValueOf(dst) if val.Kind() != reflect.Pointer || val.Elem().Kind() != reflect.Struct { - return fmt.Errorf("dst must be a pointer to a struct") + return fmt.Errorf("%w: dst must be a pointer to a struct", derrors.InvalidArgument) + } + if err := parseValue(v, val.Elem()); err != nil { + return fmt.Errorf("%w: %v", derrors.InvalidArgument, err) } - return parseValue(v, val.Elem()) + return nil } func parseValue(v url.Values, val reflect.Value) error { |
