mirror of
https://github.com/labstack/echo.git
synced 2025-01-24 03:16:14 +02:00
Cleaned up http error handler #325
Signed-off-by: Vishal Rana <vr@labstack.com>
This commit is contained in:
parent
c67300bb30
commit
106272e201
40
echo.go
40
echo.go
@ -12,7 +12,6 @@ import (
|
|||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
|
||||||
|
|
||||||
"encoding/xml"
|
"encoding/xml"
|
||||||
|
|
||||||
@ -23,21 +22,19 @@ import (
|
|||||||
|
|
||||||
type (
|
type (
|
||||||
Echo struct {
|
Echo struct {
|
||||||
prefix string
|
prefix string
|
||||||
middleware []MiddlewareFunc
|
middleware []MiddlewareFunc
|
||||||
http2 bool
|
http2 bool
|
||||||
maxParam *int
|
maxParam *int
|
||||||
notFoundHandler HandlerFunc
|
httpErrorHandler HTTPErrorHandler
|
||||||
defaultHTTPErrorHandler HTTPErrorHandler
|
binder Binder
|
||||||
httpErrorHandler HTTPErrorHandler
|
renderer Renderer
|
||||||
binder Binder
|
pool sync.Pool
|
||||||
renderer Renderer
|
debug bool
|
||||||
pool sync.Pool
|
hook http.HandlerFunc
|
||||||
debug bool
|
autoIndex bool
|
||||||
hook http.HandlerFunc
|
logger *log.Logger
|
||||||
autoIndex bool
|
router *Router
|
||||||
logger *log.Logger
|
|
||||||
router *Router
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Route struct {
|
Route struct {
|
||||||
@ -180,8 +177,6 @@ var (
|
|||||||
methodNotAllowedHandler = func(c *Context) error {
|
methodNotAllowedHandler = func(c *Context) error {
|
||||||
return NewHTTPError(http.StatusMethodNotAllowed)
|
return NewHTTPError(http.StatusMethodNotAllowed)
|
||||||
}
|
}
|
||||||
|
|
||||||
unixEpochTime = time.Unix(0, 0)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// New creates an instance of Echo.
|
// New creates an instance of Echo.
|
||||||
@ -197,7 +192,7 @@ func New() (e *Echo) {
|
|||||||
//----------
|
//----------
|
||||||
|
|
||||||
e.HTTP2(true)
|
e.HTTP2(true)
|
||||||
e.defaultHTTPErrorHandler = func(err error, c *Context) {
|
defaultHTTPErrorHandler := func(err error, c *Context) {
|
||||||
code := http.StatusInternalServerError
|
code := http.StatusInternalServerError
|
||||||
msg := http.StatusText(code)
|
msg := http.StatusText(code)
|
||||||
if he, ok := err.(*HTTPError); ok {
|
if he, ok := err.(*HTTPError); ok {
|
||||||
@ -212,7 +207,7 @@ func New() (e *Echo) {
|
|||||||
}
|
}
|
||||||
e.logger.Error(err)
|
e.logger.Error(err)
|
||||||
}
|
}
|
||||||
e.SetHTTPErrorHandler(e.defaultHTTPErrorHandler)
|
e.SetHTTPErrorHandler(defaultHTTPErrorHandler)
|
||||||
e.SetBinder(&binder{})
|
e.SetBinder(&binder{})
|
||||||
|
|
||||||
// Logger
|
// Logger
|
||||||
@ -252,11 +247,6 @@ func (e *Echo) HTTP2(on bool) {
|
|||||||
e.http2 = on
|
e.http2 = on
|
||||||
}
|
}
|
||||||
|
|
||||||
// DefaultHTTPErrorHandler invokes the default HTTP error handler.
|
|
||||||
func (e *Echo) DefaultHTTPErrorHandler(err error, c *Context) {
|
|
||||||
e.defaultHTTPErrorHandler(err, c)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetHTTPErrorHandler registers a custom Echo.HTTPErrorHandler.
|
// SetHTTPErrorHandler registers a custom Echo.HTTPErrorHandler.
|
||||||
func (e *Echo) SetHTTPErrorHandler(h HTTPErrorHandler) {
|
func (e *Echo) SetHTTPErrorHandler(h HTTPErrorHandler) {
|
||||||
e.httpErrorHandler = h
|
e.httpErrorHandler = h
|
||||||
|
@ -25,9 +25,6 @@ type (
|
|||||||
|
|
||||||
func TestEcho(t *testing.T) {
|
func TestEcho(t *testing.T) {
|
||||||
e := New()
|
e := New()
|
||||||
req, _ := http.NewRequest(GET, "/", nil)
|
|
||||||
rec := httptest.NewRecorder()
|
|
||||||
c := NewContext(req, NewResponse(rec, e), e)
|
|
||||||
|
|
||||||
// Router
|
// Router
|
||||||
assert.NotNil(t, e.Router())
|
assert.NotNil(t, e.Router())
|
||||||
@ -35,10 +32,6 @@ func TestEcho(t *testing.T) {
|
|||||||
// Debug
|
// Debug
|
||||||
e.SetDebug(true)
|
e.SetDebug(true)
|
||||||
assert.True(t, e.debug)
|
assert.True(t, e.debug)
|
||||||
|
|
||||||
// DefaultHTTPErrorHandler
|
|
||||||
e.DefaultHTTPErrorHandler(errors.New("error"), c)
|
|
||||||
assert.Equal(t, http.StatusInternalServerError, rec.Code)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestEchoIndex(t *testing.T) {
|
func TestEchoIndex(t *testing.T) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user