From e19cb307134e60d0d9d6f989c28e513b210cbfe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Schw=C3=B6rer?= Date: Sat, 14 Mar 2026 01:13:37 +0100 Subject: [PATCH] v0.0.628 --- ginext/routes.go | 36 ++++++++++++++++++++++++++++++++++-- goextVersion.go | 4 ++-- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/ginext/routes.go b/ginext/routes.go index daa5b26..22479dd 100644 --- a/ginext/routes.go +++ b/ginext/routes.go @@ -1,13 +1,14 @@ package ginext import ( - "git.blackforestbytes.com/BlackForestBytes/goext/langext" - "github.com/gin-gonic/gin" "net/http" "path" "reflect" "runtime" "strings" + + "git.blackforestbytes.com/BlackForestBytes/goext/langext" + "github.com/gin-gonic/gin" ) var anyMethods = []string{ @@ -210,6 +211,37 @@ func (w *GinRouteBuilder) HandleRawHTTPHandlerFunc(f http.HandlerFunc) { }) } +func (w *GinRouteBuilder) HandleExtHTTPHandlerFunc(f func(*gin.Context, http.ResponseWriter, *http.Request)) { + if w.routes.wrapper.bufferBody { + arr := make([]gin.HandlerFunc, 0, len(w.handlers)+1) + arr = append(arr, BodyBuffer) + arr = append(arr, w.handlers...) + w.handlers = arr + } + + middlewareNames := langext.ArrMap(w.handlers, func(v gin.HandlerFunc) string { return nameOfFunction(v) }) + + w.handlers = append(w.handlers, WrapExtHTTPHandlerFunc(w.routes.wrapper, f)) + + methodName := w.method + + if w.method == "*" { + methodName = "ANY" + for _, method := range anyMethods { + w.routes.routes.Handle(method, w.relPath, w.handlers...) + } + } else { + w.routes.routes.Handle(w.method, w.relPath, w.handlers...) + } + + w.routes.wrapper.routeSpecs = append(w.routes.wrapper.routeSpecs, ginRouteSpec{ + Method: methodName, + URL: w.absPath, + Middlewares: middlewareNames, + Handler: "[HTTPHandlerFunc]", + }) +} + func (w *GinWrapper) NoRoute(handler WHandlerFunc) { handlers := make([]gin.HandlerFunc, 0) diff --git a/goextVersion.go b/goextVersion.go index 7bea854..c92fd81 100644 --- a/goextVersion.go +++ b/goextVersion.go @@ -1,5 +1,5 @@ package goext -const GoextVersion = "0.0.627" +const GoextVersion = "0.0.628" -const GoextVersionTimestamp = "2026-03-14T01:13:07+0100" +const GoextVersionTimestamp = "2026-03-14T01:13:37+0100"