From 0d29f470d3cb1717d8e75d131f40afb7ceb99722 Mon Sep 17 00:00:00 2001 From: "Gustavo \"Guz\" L de Mello" Date: Fri, 8 Aug 2025 19:17:57 -0300 Subject: [PATCH] feat(smalltrip,multiplexer): form method multiplexer --- smalltrip/multiplexer/request.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 smalltrip/multiplexer/request.go diff --git a/smalltrip/multiplexer/request.go b/smalltrip/multiplexer/request.go new file mode 100644 index 0000000..6b287d9 --- /dev/null +++ b/smalltrip/multiplexer/request.go @@ -0,0 +1,22 @@ +package multiplexer + +import ( + "net/http" + "strings" +) + +func WithFormMethod(mux Multiplexer, key string) Multiplexer { + return &formMethodMux{key: key, Multiplexer: mux} +} + +type formMethodMux struct { + key string + Multiplexer +} + +func (mux *formMethodMux) ServeHTTP(w http.ResponseWriter, r *http.Request) { + if v := r.FormValue(mux.key); v != "" { + r.Method = strings.ToUpper(v) + } + mux.Multiplexer.ServeHTTP(w, r) +}