14287: Omit false boolean params from API requests.
authorTom Clegg <tclegg@veritasgenetics.com>
Tue, 4 Jun 2019 15:39:59 +0000 (11:39 -0400)
committerTom Clegg <tclegg@veritasgenetics.com>
Mon, 17 Jun 2019 13:54:39 +0000 (09:54 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>

sdk/go/arvados/client.go

index e55cb82f2a353f95c1f57bfe168de48a852f619f..102018bb1280289efe923643c3db521dc509756d 100644 (file)
@@ -203,6 +203,17 @@ func anythingToValues(params interface{}) (url.Values, error) {
                        urlValues.Set(k, v.String())
                        continue
                }
+               if v, ok := v.(bool); ok {
+                       if v {
+                               urlValues.Set(k, "true")
+                       } else {
+                               // "foo=false", "foo=0", and "foo="
+                               // are all taken as true strings, so
+                               // don't send false values at all --
+                               // rely on the default being false.
+                       }
+                       continue
+               }
                j, err := json.Marshal(v)
                if err != nil {
                        return nil, err