github.com/seeker-insurance/kit@v0.0.13/web/middleware/template.go (about) 1 package middleware 2 3 import ( 4 "github.com/labstack/echo" 5 emw "github.com/labstack/echo/middleware" 6 ) 7 8 type ( 9 // ApiErrorConfig defines the config for ApiError middleware. 10 TemplateConfig struct { 11 // Skipper defines a function to skip middleware. 12 Skipper emw.Skipper 13 } 14 ) 15 16 var ( 17 // DefaultApiErrorConfig is the default ApiError middleware config. 18 DefaultTemplateConfig = TemplateConfig{ 19 Skipper: emw.DefaultSkipper, 20 } 21 ) 22 23 // ApiError returns a middleware that logs converts errors to json api errors. 24 func TemplateMiddleware() echo.MiddlewareFunc { 25 return TemplateWithConfig(DefaultTemplateConfig) 26 } 27 28 func TemplateWithConfig(config TemplateConfig) echo.MiddlewareFunc { 29 if config.Skipper == nil { 30 config.Skipper = DefaultTemplateConfig.Skipper 31 } 32 33 return func(next echo.HandlerFunc) echo.HandlerFunc { 34 return func(c echo.Context) (err error) { 35 if config.Skipper(c) { 36 return next(c) 37 } 38 39 return next(c) 40 } 41 } 42 }