Use the supported discovery document instead of the old schema#show shim.
[arvados.git] / apps / workbench / app / models / arvados_api_client.rb
index a8bcb4d650c6f1d733c04f3b439fc60daa8f616b..b799b7d51dc04c46d2bb53daa46c1b7492b5bb61 100644 (file)
@@ -32,6 +32,9 @@ class ArvadosApiClient
     resources_kind = class_kind(resources_kind).pluralize if resources_kind.is_a? Class
     url = "#{self.arvados_v1_base}/#{resources_kind}#{action}"
 
+    # Clean up /arvados/v1/../../discovery/v1 to /discovery/v1
+    url.sub! '/arvados/v1/../../', '/'
+
     query = {"api_token" => api_token}
     if !data.nil?
       data.each do |k,v|
@@ -94,6 +97,14 @@ class ArvadosApiClient
         (class << ary; self; end).class_eval { attr_accessor :items_available }
         ary.items_available = j[:items_available]
       end
+      if j[:offset]
+        (class << ary; self; end).class_eval { attr_accessor :offset }
+        ary.offset = j[:offset]
+      end
+      if j[:limit]
+        (class << ary; self; end).class_eval { attr_accessor :limit }
+        ary.limit = j[:limit]
+      end
       ary
     elsif j.is_a? Hash and (kind || j[:kind])
       oclass = self.kind_class(kind || j[:kind])
@@ -134,8 +145,8 @@ class ArvadosApiClient
     Rails.configuration.arvados_v1_base
   end
 
-  def arvados_schema
-    @arvados_schema ||= api 'schema', ''
+  def discovery
+    @discovery ||= api '../../discovery/v1/apis/arvados/v1/rest', ''
   end
 
   def kind_class(kind)