From d6849d57fb940e63066f572800fde937fe332cd9 Mon Sep 17 00:00:00 2001 From: EwenQuim Date: Fri, 20 Dec 2024 19:39:54 +0100 Subject: [PATCH] Plugs the Error Handler into the Gin adaptor --- extra/fuegogin/adaptor.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/extra/fuegogin/adaptor.go b/extra/fuegogin/adaptor.go index d8b5806f..366a9903 100644 --- a/extra/fuegogin/adaptor.go +++ b/extra/fuegogin/adaptor.go @@ -28,7 +28,7 @@ func Post[T, B any](engine *fuego.Engine, ginRouter gin.IRouter, path string, ha func handleFuego[T, B any](engine *fuego.Engine, ginRouter gin.IRouter, method, path string, fuegoHandler func(c fuego.ContextWithBody[B]) (T, error), options ...func(*fuego.BaseRoute)) *fuego.Route[T, B] { baseRoute := fuego.NewBaseRoute(method, path, fuegoHandler, engine.OpenAPI, options...) - return handle(engine, ginRouter, &fuego.Route[T, B]{BaseRoute: baseRoute}, GinHandler(fuegoHandler)) + return handle(engine, ginRouter, &fuego.Route[T, B]{BaseRoute: baseRoute}, GinHandler(engine, fuegoHandler)) } func handleGin(engine *fuego.Engine, ginRouter gin.IRouter, method, path string, ginHandler gin.HandlerFunc, options ...func(*fuego.BaseRoute)) *fuego.Route[any, any] { @@ -52,7 +52,7 @@ func handle[T, B any](engine *fuego.Engine, ginRouter gin.IRouter, route *fuego. } // Convert a Fuego handler to a Gin handler. -func GinHandler[B, T any](handler func(c fuego.ContextWithBody[B]) (T, error)) gin.HandlerFunc { +func GinHandler[B, T any](engine *fuego.Engine, handler func(c fuego.ContextWithBody[B]) (T, error)) gin.HandlerFunc { return func(c *gin.Context) { context := &ginContext[B]{ CommonContext: internal.CommonContext[B]{ @@ -65,6 +65,7 @@ func GinHandler[B, T any](handler func(c fuego.ContextWithBody[B]) (T, error)) g resp, err := handler(context) if err != nil { + err = engine.ErrorHandler(err) c.Error(err) return }