diff options
author | 2022-06-08 20:38:03 +0200 | |
---|---|---|
committer | 2022-06-08 20:38:03 +0200 | |
commit | 1ede54ddf6dfd2d4ba039eb7e23b74bcac65b643 (patch) | |
tree | 727436fb9bf9da25e30c5ded65c5b5ccaffe0cf0 /internal/gtserror/withcode.go | |
parent | [bugfix] #621: add weak type handing to mapstructure decode (#625) (diff) | |
download | gotosocial-1ede54ddf6dfd2d4ba039eb7e23b74bcac65b643.tar.xz |
[feature] More consistent API error handling (#637)
* update templates
* start reworking api error handling
* update template
* return AP status at web endpoint if negotiated
* start making api error handling much more consistent
* update account endpoints to new error handling
* use new api error handling in admin endpoints
* go fmt ./...
* use api error logic in app
* use generic error handling in auth
* don't export generic error handler
* don't defer clearing session
* user nicer error handling on oidc callback handler
* tidy up the sign in handler
* tidy up the token handler
* use nicer error handling in blocksget
* auth emojis endpoint
* fix up remaining api endpoints
* fix whoopsie during login flow
* regenerate swagger docs
* change http error logging to debug
Diffstat (limited to 'internal/gtserror/withcode.go')
-rw-r--r-- | internal/gtserror/withcode.go | 42 |
1 files changed, 34 insertions, 8 deletions
diff --git a/internal/gtserror/withcode.go b/internal/gtserror/withcode.go index 34889b961..6672000dc 100644 --- a/internal/gtserror/withcode.go +++ b/internal/gtserror/withcode.go @@ -60,7 +60,7 @@ func (e withCode) Code() int { // NewErrorBadRequest returns an ErrorWithCode 400 with the given original error and optional help text. func NewErrorBadRequest(original error, helpText ...string) WithCode { - safe := "bad request" + safe := http.StatusText(http.StatusBadRequest) if helpText != nil { safe = safe + ": " + strings.Join(helpText, ": ") } @@ -71,9 +71,9 @@ func NewErrorBadRequest(original error, helpText ...string) WithCode { } } -// NewErrorNotAuthorized returns an ErrorWithCode 401 with the given original error and optional help text. -func NewErrorNotAuthorized(original error, helpText ...string) WithCode { - safe := "not authorized" +// NewErrorUnauthorized returns an ErrorWithCode 401 with the given original error and optional help text. +func NewErrorUnauthorized(original error, helpText ...string) WithCode { + safe := http.StatusText(http.StatusUnauthorized) if helpText != nil { safe = safe + ": " + strings.Join(helpText, ": ") } @@ -86,7 +86,7 @@ func NewErrorNotAuthorized(original error, helpText ...string) WithCode { // NewErrorForbidden returns an ErrorWithCode 403 with the given original error and optional help text. func NewErrorForbidden(original error, helpText ...string) WithCode { - safe := "forbidden" + safe := http.StatusText(http.StatusForbidden) if helpText != nil { safe = safe + ": " + strings.Join(helpText, ": ") } @@ -99,7 +99,7 @@ func NewErrorForbidden(original error, helpText ...string) WithCode { // NewErrorNotFound returns an ErrorWithCode 404 with the given original error and optional help text. func NewErrorNotFound(original error, helpText ...string) WithCode { - safe := "404 not found" + safe := http.StatusText(http.StatusNotFound) if helpText != nil { safe = safe + ": " + strings.Join(helpText, ": ") } @@ -112,7 +112,7 @@ func NewErrorNotFound(original error, helpText ...string) WithCode { // NewErrorInternalError returns an ErrorWithCode 500 with the given original error and optional help text. func NewErrorInternalError(original error, helpText ...string) WithCode { - safe := "internal server error" + safe := http.StatusText(http.StatusInternalServerError) if helpText != nil { safe = safe + ": " + strings.Join(helpText, ": ") } @@ -125,7 +125,7 @@ func NewErrorInternalError(original error, helpText ...string) WithCode { // NewErrorConflict returns an ErrorWithCode 409 with the given original error and optional help text. func NewErrorConflict(original error, helpText ...string) WithCode { - safe := "conflict" + safe := http.StatusText(http.StatusConflict) if helpText != nil { safe = safe + ": " + strings.Join(helpText, ": ") } @@ -135,3 +135,29 @@ func NewErrorConflict(original error, helpText ...string) WithCode { code: http.StatusConflict, } } + +// NewErrorNotAcceptable returns an ErrorWithCode 406 with the given original error and optional help text. +func NewErrorNotAcceptable(original error, helpText ...string) WithCode { + safe := http.StatusText(http.StatusNotAcceptable) + if helpText != nil { + safe = safe + ": " + strings.Join(helpText, ": ") + } + return withCode{ + original: original, + safe: errors.New(safe), + code: http.StatusNotAcceptable, + } +} + +// NewErrorUnprocessableEntity returns an ErrorWithCode 422 with the given original error and optional help text. +func NewErrorUnprocessableEntity(original error, helpText ...string) WithCode { + safe := http.StatusText(http.StatusUnprocessableEntity) + if helpText != nil { + safe = safe + ": " + strings.Join(helpText, ": ") + } + return withCode{ + original: original, + safe: errors.New(safe), + code: http.StatusUnprocessableEntity, + } +} |