aboutsummaryrefslogtreecommitdiff
path: root/internal/api/params.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/api/params.go')
-rw-r--r--internal/api/params.go9
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 {