X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d1e128422a34c9ab706eec0225d4a5f6b78760ad..6fb5d2bd10901a1e0ced4ea8849419145d47a0b5:/apps/workbench/app/models/arvados_api_client.rb diff --git a/apps/workbench/app/models/arvados_api_client.rb b/apps/workbench/app/models/arvados_api_client.rb index 84735d9774..2f83a41152 100644 --- a/apps/workbench/app/models/arvados_api_client.rb +++ b/apps/workbench/app/models/arvados_api_client.rb @@ -90,14 +90,26 @@ class ArvadosApiClient resp end + def self.patch_paging_vars(ary, items_available, offset, limit) + if items_available + (class << ary; self; end).class_eval { attr_accessor :items_available } + ary.items_available = items_available + end + if offset + (class << ary; self; end).class_eval { attr_accessor :offset } + ary.offset = offset + end + if limit + (class << ary; self; end).class_eval { attr_accessor :limit } + ary.limit = limit + end + ary + end + def unpack_api_response(j, kind=nil) if j.is_a? Hash and j[:items].is_a? Array and j[:kind].match(/(_list|List)$/) ary = j[:items].collect { |x| unpack_api_response x, j[:kind] } - if j[:items_available] - (class << ary; self; end).class_eval { attr_accessor :items_available } - ary.items_available = j[:items_available] - end - ary + ArvadosApiClient::patch_paging_vars(ary, j[:items_available], j[:offset], j[:limit]) elsif j.is_a? Hash and (kind || j[:kind]) oclass = self.kind_class(kind || j[:kind]) if oclass @@ -137,10 +149,6 @@ class ArvadosApiClient Rails.configuration.arvados_v1_base end - def arvados_schema - @arvados_schema ||= api 'schema', '' - end - def discovery @discovery ||= api '../../discovery/v1/apis/arvados/v1/rest', '' end