mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 02:22:26 -05:00
[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
This commit is contained in:
parent
91c0ed863a
commit
1ede54ddf6
130 changed files with 2154 additions and 1673 deletions
|
|
@ -1,19 +0,0 @@
|
|||
/*
|
||||
GoToSocial
|
||||
Copyright (C) 2021-2022 GoToSocial Authors admin@gotosocial.org
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package gtserror
|
||||
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue