feat: add function NewErrors to create multiple new errors (#1701)

pull/1709/head
vecpeng 2022-01-10 21:22:34 +08:00 committed by GitHub
parent 4f1a712498
commit 5fe95c2579
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 0 deletions

23
app.go
View File

@ -711,6 +711,29 @@ func NewError(code int, message ...string) *Error {
return e
}
// NewErrors creates multiple new Errors instance with some message
func NewErrors(code int, messages ...string) []*Error {
var errors []*Error
if len(messages) > 0 {
for _, message := range messages {
e := &Error{
Code: code,
}
e.Message = message
errors = append(errors, e)
}
} else {
// Use default messages
e := &Error{
Code: code,
}
e.Message = utils.StatusMessage(code)
errors = append(errors, e)
}
return errors
}
// Listener can be used to pass a custom listener.
func (app *App) Listener(ln net.Listener) error {
// Prefork is supported for custom listeners

View File

@ -1166,6 +1166,15 @@ func Test_NewError(t *testing.T) {
utils.AssertEqual(t, "permission denied", e.Message)
}
func Test_NewErrors(t *testing.T) {
errors := NewErrors(StatusBadRequest, []string{"error 1", "error 2"}...)
utils.AssertEqual(t, StatusBadRequest, errors[0].Code)
utils.AssertEqual(t, "error 1", errors[0].Message)
utils.AssertEqual(t, StatusBadRequest, errors[1].Code)
utils.AssertEqual(t, "error 2", errors[1].Message)
}
// go test -run Test_Test_Timeout
func Test_Test_Timeout(t *testing.T) {
app := New()