diff options
| author | Ethan Lee <ethanalee@google.com> | 2026-04-09 18:48:49 +0000 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2026-04-09 13:23:05 -0700 |
| commit | ee3de85430431a53d070e4712a5caa9ddcc28628 (patch) | |
| tree | 445a773cf08da4bea214898392cb82baf373d624 /internal/api/params.go | |
| parent | 654ef90febc3cd4bbc261b97fbea7a6c45e1d26d (diff) | |
| download | go-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.go | 6 |
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 } |
