WrapMiddleware wraps `func(http.Handler) http.Handler` into `echo.MiddlewareFunc`
(m func(http.Handler) http.Handler)
| 833 | |
| 834 | // WrapMiddleware wraps `func(http.Handler) http.Handler` into `echo.MiddlewareFunc` |
| 835 | func WrapMiddleware(m func(http.Handler) http.Handler) MiddlewareFunc { |
| 836 | return func(next HandlerFunc) HandlerFunc { |
| 837 | return func(c *Context) (err error) { |
| 838 | req := c.Request() |
| 839 | req.Pattern = c.Path() |
| 840 | for _, p := range c.PathValues() { |
| 841 | req.SetPathValue(p.Name, p.Value) |
| 842 | } |
| 843 | |
| 844 | m(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
| 845 | c.SetRequest(r) |
| 846 | c.SetResponse(NewResponse(w, c.echo.Logger)) |
| 847 | err = next(c) |
| 848 | })).ServeHTTP(c.Response(), req) |
| 849 | return |
| 850 | } |
| 851 | } |
| 852 | } |
| 853 | |
| 854 | func applyMiddleware(h HandlerFunc, middleware ...MiddlewareFunc) HandlerFunc { |
| 855 | for i := len(middleware) - 1; i >= 0; i-- { |
searching dependent graphs…