Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from Jan 10, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
23 changes: 23 additions & 0 deletions app.go
Expand Up @@ -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
Expand Down
9 changes: 9 additions & 0 deletions app_test.go
Expand Up @@ -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()
Expand Down