diff --git a/providers/url/url.go b/providers/url/url.go index e1b617d..f55ab30 100644 --- a/providers/url/url.go +++ b/providers/url/url.go @@ -1,5 +1,6 @@ package url +import "net/http" import "net/url" import "html/template" import "git.tebibyte.media/sashakoshka/step" @@ -15,6 +16,7 @@ type Provider struct { func (this *Provider) FuncMap () template.FuncMap { return template.FuncMap { "parseQuery": funcParseQuery, + "parseForm": funcParseForm, } } @@ -23,8 +25,13 @@ func funcParseQuery (query string) url.Values { // and returning an error in a template function causes everything to // stop rather ungracefully values, err := url.ParseQuery(query) - if err != nil { - values = make(url.Values) - } + if err != nil { return nil } return values } + + +func funcParseForm (req *http.Request) url.Values { + err := req.ParseForm() + if err != nil { return nil } + return req.Form +}