123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // Copyright 2015 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- package gensupport
- import (
- "net/url"
- "google.golang.org/api/googleapi"
- )
- // URLParams is a simplified replacement for url.Values
- // that safely builds up URL parameters for encoding.
- type URLParams map[string][]string
- // Get returns the first value for the given key, or "".
- func (u URLParams) Get(key string) string {
- vs := u[key]
- if len(vs) == 0 {
- return ""
- }
- return vs[0]
- }
- // Set sets the key to value.
- // It replaces any existing values.
- func (u URLParams) Set(key, value string) {
- u[key] = []string{value}
- }
- // SetMulti sets the key to an array of values.
- // It replaces any existing values.
- // Note that values must not be modified after calling SetMulti
- // so the caller is responsible for making a copy if necessary.
- func (u URLParams) SetMulti(key string, values []string) {
- u[key] = values
- }
- // Encode encodes the values into ``URL encoded'' form
- // ("bar=baz&foo=quux") sorted by key.
- func (u URLParams) Encode() string {
- return url.Values(u).Encode()
- }
- // SetOptions sets the URL params and any additional call options.
- func SetOptions(u URLParams, opts ...googleapi.CallOption) {
- for _, o := range opts {
- u.Set(o.Get())
- }
- }
|