14287: Move federation.Interface to arvados.API.
[arvados.git] / lib / controller / router / request.go
index f9eb3e76d10402acc291e460d2b1e10d78f76307..47d8bb1109d645b0ca3f266fc29f1b6b5d84a62a 100644 (file)
@@ -97,6 +97,13 @@ func (rtr *router) loadRequestParams(req *http.Request, attrsKey string) (map[st
        }
 
        if v, ok := params[attrsKey]; ok && attrsKey != "" {
+               if v, ok := v.(map[string]interface{}); ok {
+                       // Delete field(s) that appear in responses
+                       // but not in update attrs, so clients can
+                       // fetch-modify-update.
+                       delete(v, "etag")
+                       delete(v, "unsigned_manifest_text")
+               }
                params["attrs"] = v
                delete(params, attrsKey)
        }
@@ -134,6 +141,7 @@ func (rtr *router) transcode(src interface{}, dst interface{}) error {
 }
 
 var boolParams = map[string]bool{
+       "distinct":             true,
        "ensure_unique_name":   true,
        "include_trash":        true,
        "include_old_versions": true,