You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NWWeb/queryparameters.go

34 lines
767 B

package nwweb
import (
"fmt"
"net/http"
"net/url"
)
type queryParameters struct {
convertable
httpRequest *http.Request
}
func newQueryParameters(httpRequest *http.Request) queryParameters {
q := queryParameters{httpRequest: httpRequest}
q.stringVal = func(key string) string {
return q.httpRequest.URL.Query().Get(key)
}
return q
}
func (q queryParameters) Set(key string, value any) {
if len(q.httpRequest.URL.RawQuery) > 0 {
q.httpRequest.URL.RawQuery += fmt.Sprintf("&%s=%s", key, url.QueryEscape(fmt.Sprintf("%v", value)))
} else {
q.httpRequest.URL.RawQuery = fmt.Sprintf("%s=%s", key, url.QueryEscape(fmt.Sprintf("%v", value)))
}
}
func (q queryParameters) ReplaceWith(query url.Values) {
q.httpRequest.URL.RawQuery = query.Encode()
}