X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/97ee2e7bfcdb17fd195382b22a15f0f2752b8007..ea7c6effed14cd80a444c6e4d5b89c8b99c17d59:/apps/workbench/app/models/arvados_resource_list.rb diff --git a/apps/workbench/app/models/arvados_resource_list.rb b/apps/workbench/app/models/arvados_resource_list.rb index b1c1561787..16a59b173e 100644 --- a/apps/workbench/app/models/arvados_resource_list.rb +++ b/apps/workbench/app/models/arvados_resource_list.rb @@ -15,11 +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| @@ -51,7 +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 @@ -62,6 +75,10 @@ class ArvadosResourceList @results end + def results=(r) + @results = r + end + def all where({}) end @@ -104,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