aboutsummaryrefslogtreecommitdiff
path: root/internal/api/params.go
diff options
context:
space:
mode:
authorEthan Lee <ethanalee@google.com>2026-04-09 18:48:49 +0000
committerGopher Robot <gobot@golang.org>2026-04-09 13:23:05 -0700
commitee3de85430431a53d070e4712a5caa9ddcc28628 (patch)
tree445a773cf08da4bea214898392cb82baf373d624 /internal/api/params.go
parent654ef90febc3cd4bbc261b97fbea7a6c45e1d26d (diff)
downloadgo-x-pkgsite-ee3de85430431a53d070e4712a5caa9ddcc28628.tar.xz
internal/api: refactor error handling to increase consistency
- Refactored error handling to avoid leaking internal implementation details. Database and system errors are masked by falling back to standard HTTP statuses but still logging the entire error context. - User facing error messages can now be specified within the Error struct. - Added helpers in types.go to simplify error construction. - Updated ServeModuleVersions to explicitly return 404 when no versions are found. - Expanded test coverage in api_test.go to include 404 and 400 edge cases. Change-Id: I89c4be3941126c15df6aefdd21e4bbd2d3b23be1 Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/764820 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Ethan Lee <ethanalee@google.com> kokoro-CI: kokoro <noreply+kokoro@google.com> Reviewed-by: Jonathan Amsterdam <jba@google.com>
Diffstat (limited to 'internal/api/params.go')
-rw-r--r--internal/api/params.go6
1 files changed, 2 insertions, 4 deletions
diff --git a/internal/api/params.go b/internal/api/params.go
index 6858de5e..d0403fe2 100644
--- a/internal/api/params.go
+++ b/internal/api/params.go
@@ -9,8 +9,6 @@ import (
"net/url"
"reflect"
"strconv"
-
- "golang.org/x/pkgsite/internal/derrors"
)
// ListParams are common pagination and filtering parameters.
@@ -85,10 +83,10 @@ 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("%w: dst must be a pointer to a struct", derrors.InvalidArgument)
+ return InternalServerError("dst must be a pointer to a struct")
}
if err := parseValue(v, val.Elem()); err != nil {
- return fmt.Errorf("%w: %v", derrors.InvalidArgument, err)
+ return BadRequest("%v", err)
}
return nil
}