Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
ac416f7b69
|
|||
e10140e143
|
|||
e165f0f62f
|
|||
655d4daad9
|
@@ -80,6 +80,10 @@ func New(t ErrorType, msg string) *Builder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Wrap(err error, msg string) *Builder {
|
func Wrap(err error, msg string) *Builder {
|
||||||
|
if err == nil {
|
||||||
|
return &Builder{errorData: newExErr(CatSystem, TypeInternal, msg)} // prevent NPE if we call Wrap with err==nil
|
||||||
|
}
|
||||||
|
|
||||||
if !pkgconfig.RecursiveErrors {
|
if !pkgconfig.RecursiveErrors {
|
||||||
v := FromError(err)
|
v := FromError(err)
|
||||||
v.Message = msg
|
v.Message = msg
|
||||||
|
@@ -5,10 +5,8 @@ import (
|
|||||||
"gogs.mikescher.com/BlackForestBytes/goext/dataext"
|
"gogs.mikescher.com/BlackForestBytes/goext/dataext"
|
||||||
)
|
)
|
||||||
|
|
||||||
func BodyBuffer() gin.HandlerFunc {
|
func BodyBuffer(g *gin.Context) {
|
||||||
return func(g *gin.Context) {
|
if g.Request.Body != nil {
|
||||||
if g.Request.Body != nil {
|
g.Request.Body = dataext.NewBufferedReadCloser(g.Request.Body)
|
||||||
g.Request.Body = dataext.NewBufferedReadCloser(g.Request.Body)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -113,7 +113,7 @@ func (w *GinRouteBuilder) Handle(handler WHandlerFunc) {
|
|||||||
|
|
||||||
if w.routes.wrapper.bufferBody {
|
if w.routes.wrapper.bufferBody {
|
||||||
arr := make([]gin.HandlerFunc, 0, len(w.handlers)+1)
|
arr := make([]gin.HandlerFunc, 0, len(w.handlers)+1)
|
||||||
arr = append(arr, BodyBuffer())
|
arr = append(arr, BodyBuffer)
|
||||||
arr = append(arr, w.handlers...)
|
arr = append(arr, w.handlers...)
|
||||||
w.handlers = arr
|
w.handlers = arr
|
||||||
}
|
}
|
||||||
@@ -143,13 +143,25 @@ func (w *GinRouteBuilder) Handle(handler WHandlerFunc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (w *GinWrapper) NoRoute(handler WHandlerFunc) {
|
func (w *GinWrapper) NoRoute(handler WHandlerFunc) {
|
||||||
w.engine.NoRoute(Wrap(w, handler))
|
|
||||||
|
handlers := make([]gin.HandlerFunc, 0)
|
||||||
|
|
||||||
|
if w.bufferBody {
|
||||||
|
handlers = append(handlers, BodyBuffer)
|
||||||
|
}
|
||||||
|
|
||||||
|
middlewareNames := langext.ArrMap(handlers, func(v gin.HandlerFunc) string { return nameOfFunction(v) })
|
||||||
|
handlerName := nameOfFunction(handler)
|
||||||
|
|
||||||
|
handlers = append(handlers, Wrap(w, handler))
|
||||||
|
|
||||||
|
w.engine.NoRoute(handlers...)
|
||||||
|
|
||||||
w.routeSpecs = append(w.routeSpecs, ginRouteSpec{
|
w.routeSpecs = append(w.routeSpecs, ginRouteSpec{
|
||||||
Method: "ANY",
|
Method: "ANY",
|
||||||
URL: "[NO_ROUTE]",
|
URL: "[NO_ROUTE]",
|
||||||
Middlewares: nil,
|
Middlewares: middlewareNames,
|
||||||
Handler: nameOfFunction(handler),
|
Handler: handlerName,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
package goext
|
package goext
|
||||||
|
|
||||||
const GoextVersion = "0.0.228"
|
const GoextVersion = "0.0.232"
|
||||||
|
|
||||||
const GoextVersionTimestamp = "2023-08-08T15:33:52+0200"
|
const GoextVersionTimestamp = "2023-08-08T18:01:00+0200"
|
||||||
|
Reference in New Issue
Block a user