From 3fdc18ae6b48c56f872320bdd542dd52d64ec251 Mon Sep 17 00:00:00 2001 From: a <a@tuxpa.in> Date: Thu, 13 Jul 2023 20:42:28 -0500 Subject: [PATCH] replacer --- contrib/middleware/replacer.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 contrib/middleware/replacer.go diff --git a/contrib/middleware/replacer.go b/contrib/middleware/replacer.go new file mode 100644 index 0000000..e77065b --- /dev/null +++ b/contrib/middleware/replacer.go @@ -0,0 +1,19 @@ +package middleware + +import ( + "strings" + + "gfx.cafe/open/jrpc/pkg/codec" +) + +var LegacyUnderscoreReplacer = MethodReplacer(strings.NewReplacer("_", "/")) + +// MethodReplacer will use the replacer on every method before handling +func MethodReplacer(replacer *strings.Replacer) codec.Middleware { + return func(next codec.Handler) codec.Handler { + return codec.HandlerFunc(func(w codec.ResponseWriter, r *codec.Request) { + r.Method = replacer.Replace(r.Method) + next.ServeRPC(w, r) + }) + } +} -- GitLab