Added 'select' and 'distinct' parameters to discovery document. Improved
authorPeter Amstutz <peter.amstutz@curoverse.com>
Thu, 1 May 2014 18:54:51 +0000 (14:54 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Thu, 1 May 2014 18:54:51 +0000 (14:54 -0400)
select parameter to parse strings as json.

services/api/app/controllers/application_controller.rb
services/api/app/controllers/arvados/v1/schema_controller.rb

index 4eb0d8e83ba839411905cdb7e8b8b3176083c8d3..8501c8690f9159d6ca89802bc5724052ca499b33 100644 (file)
@@ -260,7 +260,17 @@ class ApplicationController < ActionController::Base
       @orders = default_orders
     end
 
-    @select = params[:select] if params[:select].andand.is_a? Array
+    case params[:select]
+    when Array
+      @select = params[:select]
+    when String
+      begin
+        @select = Oj.load params[:select]
+        raise unless @select.is_a? Array
+      rescue
+        raise ArgumentError.new("Could not parse \"select\" param as an array")
+      end
+    end
 
     if params[:distinct].is_a? String
       @distinct = params[:distinct]
index 625519e89c2c815a29b46bf00aed87c2b5630ed8..56c14f1830740e138e65c66e28707971471b8c0b 100644 (file)
@@ -225,6 +225,16 @@ class Arvados::V1::SchemaController < ApplicationController
                   type: "string",
                   description: "Order in which to return matching #{k.to_s.underscore.pluralize}.",
                   location: "query"
+                },
+                select: {
+                  type: "array",
+                  description: "Select which fields to return",
+                  location: "query"
+                },
+                distinct: {
+                  type: "string",
+                  description: "Return each distinct value exactly once for the specified column (may skip rows)",
+                  location: "query"
                 }
               },
               response: {