🩹 fix: backwards incompatible change to fiber.Error (#1768)

* fix: backwards incompatible change to fiber.Error

* revert: work backward compatible
pull/1779/head
Eren BALCI 2022-02-14 10:17:04 +03:00 committed by GitHub
parent 391ae594d8
commit 74a20b4589
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 30 deletions

26
app.go
View File

@ -84,8 +84,8 @@ type ErrorHandler = func(*Ctx, error) error
// Error represents an error that occurred while handling a request.
type Error struct {
Code int `json:"code"`
Message interface{} `json:"message"`
Code int `json:"code"`
Message string `json:"message"`
}
// App denotes the Fiber application.
@ -722,31 +722,19 @@ func (app *App) Route(prefix string, fn func(router Router), name ...string) Rou
// Error makes it compatible with the `error` interface.
func (e *Error) Error() string {
return fmt.Sprint(e.Message)
return e.Message
}
// NewError creates a new Error instance with an optional message
func NewError(code int, message ...interface{}) *Error {
e := &Error{
func NewError(code int, message ...string) *Error {
err := &Error{
Code: code,
Message: utils.StatusMessage(code),
}
if len(message) > 0 {
e.Message = message[0]
err.Message = message[0]
}
return e
}
// NewErrors creates multiple new Error messages
func NewErrors(code int, messages ...interface{}) *Error {
e := &Error{
Code: code,
Message: utils.StatusMessage(code),
}
if len(messages) > 0 {
e.Message = messages
}
return e
return err
}
// Listener can be used to pass a custom listener.

View File

@ -1230,17 +1230,9 @@ func Benchmark_App_ETag_Weak(b *testing.B) {
// go test -run Test_NewError
func Test_NewError(t *testing.T) {
e := NewError(StatusForbidden, "permission denied")
utils.AssertEqual(t, StatusForbidden, e.Code)
utils.AssertEqual(t, "permission denied", fmt.Sprint(e.Message))
}
func Test_NewErrors(t *testing.T) {
e := NewErrors(StatusBadRequest, "error 1", "error 2")
messages := e.Message.([]interface{})
utils.AssertEqual(t, StatusBadRequest, e.Code)
utils.AssertEqual(t, "error 1", fmt.Sprint(messages[0]))
utils.AssertEqual(t, "error 2", fmt.Sprint(messages[1]))
err := NewError(StatusForbidden, "permission denied")
utils.AssertEqual(t, StatusForbidden, err.Code)
utils.AssertEqual(t, "permission denied", err.Message)
}
// go test -run Test_Test_Timeout