providers/url: Add ability to parse POST form data
This commit is contained in:
		
							parent
							
								
									5e7d279ee1
								
							
						
					
					
						commit
						90183a2759
					
				@ -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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user