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.
34 lines
767 B
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()
|
|
}
|