Merge branch 'master' into 1971-show-image-thumbnails
[arvados.git] / apps / workbench / app / models / arvados_resource_list.rb
index c8e6de6302863dd8082cdeee7fd8882f46aad527..16a59b173e680ed39fd6e9f58b7f2adf6fb857d6 100644 (file)
@@ -15,6 +15,22 @@ class ArvadosResourceList
     self
   end
 
+  def offset(skip)
+    @offset = skip
+    self
+  end
+
+  def order(orderby_spec)
+    @orderby_spec = orderby_spec
+    self
+  end
+
+  def filter _filters
+    @filters ||= []
+    @filters += _filters
+    self
+  end
+
   def where(cond)
     cond = cond.dup
     cond.keys.each do |uuid_key|
@@ -46,6 +62,9 @@ class ArvadosResourceList
     }
     api_params[:eager] = '1' if @eager
     api_params[:limit] = @limit if @limit
+    api_params[:offset] = @offset if @offset
+    api_params[:order] = @orderby_spec if @orderby_spec
+    api_params[:filters] = @filters if @filters
     res = $arvados_api_client.api @resource_class, '', api_params
     @results = $arvados_api_client.unpack_api_response res
     self
@@ -56,6 +75,10 @@ class ArvadosResourceList
     @results
   end
 
+  def results=(r)
+    @results = r
+  end
+
   def all
     where({})
   end
@@ -98,4 +121,17 @@ class ArvadosResourceList
   def empty?
     results.empty?
   end
+
+  def items_available
+    results.items_available if results.respond_to? :items_available
+  end
+
+  def result_limit
+    results.limit if results.respond_to? :limit
+  end
+
+  def result_offset
+    results.offset if results.respond_to? :offset
+  end
+
 end