Merge branch 'master' into 3219-further-docker-improvements
[arvados.git] / services / api / lib / load_param.rb
index 11f18f707a3dc0d4649de80cfe5eff40e22ac71c..71678cd223739db6649e011b28a5eaa82c3ea31a 100644 (file)
@@ -34,8 +34,10 @@ module LoadParam
     elsif params[:filters].is_a? String and !params[:filters].empty?
       begin
         f = Oj.load params[:filters]
-        raise unless f.is_a? Array
-        @filters += f
+        if not f.nil?
+          raise unless f.is_a? Array
+          @filters += f
+        end
       rescue
         raise ArgumentError.new("Could not parse \"filters\" param as an array")
       end
@@ -72,9 +74,13 @@ module LoadParam
       od = []
       (case params[:order]
        when String
-         od = Oj.load(params[:order])
-         raise unless od.is_a? Array
-         od
+         if params[:order].starts_with? '['
+           od = Oj.load(params[:order])
+           raise unless od.is_a? Array
+           od
+         else
+           params[:order].split(',')
+         end
        when Array
          params[:order]
        else
@@ -101,7 +107,7 @@ module LoadParam
     when String
       begin
         @select = Oj.load params[:select]
-        raise unless @select.is_a? Array
+        raise unless @select.is_a? Array or @select.nil?
       rescue
         raise ArgumentError.new("Could not parse \"select\" param as an array")
       end