From 9d833f3e5aca6e97d3111e887cb8786f7ec5d8e3 Mon Sep 17 00:00:00 2001 From: jeronimoalbi Date: Tue, 1 Oct 2024 13:08:59 +0200 Subject: [PATCH] feat: change `gnoweb` to add URL query arguments to render path --- gno.land/pkg/gnoweb/gnoweb.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gno.land/pkg/gnoweb/gnoweb.go b/gno.land/pkg/gnoweb/gnoweb.go index 5377ae6a420..7ecbbae717a 100644 --- a/gno.land/pkg/gnoweb/gnoweb.go +++ b/gno.land/pkg/gnoweb/gnoweb.go @@ -300,6 +300,10 @@ func handleRealmRender(logger *slog.Logger, app gotuna.App, cfg *Config, w http. http.Redirect(w, r, "/r/"+rlmname, http.StatusFound) return } + if len(r.URL.RawQuery) > 0 { + q := filterQueryValues(r.URL.Query()) + querystr = querystr + "?" + q.Encode() + } qpath := "vm/qrender" data := []byte(fmt.Sprintf("%s:%s", rlmpath, querystr)) res, err := makeRequest(logger, cfg, qpath, data) @@ -507,3 +511,16 @@ func pathOf(diruri string) string { panic(fmt.Sprintf("invalid dir-URI %q", diruri)) } + +func filterQueryValues(values url.Values) url.Values { + filtered := url.Values{} + for k, v := range values { + // Filter out private gnoweb arguments + if strings.HasPrefix(k, "__") { + continue + } + + filtered[k] = v + } + return filtered +}