Include first link of a given type even on reruns of the setup method.
[arvados.git] / apps / workbench / app / models / arvados_resource_list.rb
index a3032a67f295e88943d5987cca5c7fa2ace40b57..6b17ececab17c8248c3e7a60e7a7cecf41109da9 100644 (file)
@@ -15,6 +15,16 @@ class ArvadosResourceList
     self
   end
 
+  def offset(skip)
+    @offset = skip
+    self
+  end
+
+  def order(orderby_spec)
+    @orderby_spec = orderby_spec
+    self
+  end
+
   def where(cond)
     cond = cond.dup
     cond.keys.each do |uuid_key|
@@ -46,6 +56,8 @@ 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
     res = $arvados_api_client.api @resource_class, '', api_params
     @results = $arvados_api_client.unpack_api_response res
     self
@@ -56,6 +68,10 @@ class ArvadosResourceList
     @results
   end
 
+  def results=(r)
+    @results = r
+  end
+
   def all
     where({})
   end
@@ -94,4 +110,21 @@ class ArvadosResourceList
   def to_hash
     Hash[results.collect { |x| [x.uuid, x] }]
   end
+
+  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