summaryrefslogtreecommitdiff
path: root/key_form_input.go
diff options
context:
space:
mode:
Diffstat (limited to 'key_form_input.go')
-rw-r--r--key_form_input.go55
1 files changed, 55 insertions, 0 deletions
diff --git a/key_form_input.go b/key_form_input.go
new file mode 100644
index 0000000..958c9a6
--- /dev/null
+++ b/key_form_input.go
@@ -0,0 +1,55 @@
+package trunks
+
+import (
+ "net/http"
+ "net/url"
+)
+
+//
+// KeyFormInput is the simplified type for getting and setting HTTP headers
+// and request parameters (either in query or in the parameter body).
+//
+type KeyFormInput map[string]FormInput
+
+//
+// ToHttpHeader convert the KeyFormInputs to the standard http.Header.
+//
+func (kfi KeyFormInput) ToHttpHeader() (headers http.Header) {
+ headers = http.Header{}
+ if kfi == nil || len(kfi) == 0 {
+ return headers
+ }
+ for k, fi := range kfi {
+ headers.Set(k, fi.Value)
+ }
+ return headers
+}
+
+//
+// ToMultipartFormData convert the KeyFormInput into map of string and raw
+// bytes.
+//
+func (kfi KeyFormInput) ToMultipartFormData() (data map[string][]byte) {
+ data = make(map[string][]byte, len(kfi))
+ if kfi == nil || len(kfi) == 0 {
+ return data
+ }
+ for k, fi := range kfi {
+ data[k] = []byte(fi.Value)
+ }
+ return data
+}
+
+//
+// ToUrlValues convert the KeyFormInput to the standard url.Values.
+//
+func (kfi KeyFormInput) ToUrlValues() (vals url.Values) {
+ vals = url.Values{}
+ if kfi == nil || len(kfi) == 0 {
+ return vals
+ }
+ for k, fi := range kfi {
+ vals.Set(k, fi.Value)
+ }
+ return vals
+}