Use discovery document to build infix->kind map instead of using a
[arvados.git] / apps / workbench / app / models / arvados_api_client.rb
index 35d75267636040c4d0cb6f51cea590abe0f87fd0..b2d774cac493be43a1f27a2226f657c0b5f6099e 100644 (file)
@@ -77,7 +77,7 @@ class ArvadosApiClient
     if msg.status_code != 200
       errors = resp[:errors]
       errors = errors.join("\n\n") if errors.is_a? Array
-      raise "API error #{msg.status_code}:\n\n#{errors}\n"
+      raise "#{errors} [API: #{msg.status_code}]"
     end
     if resp[:_profile]
       Rails.logger.info "API client: " \
@@ -138,6 +138,10 @@ class ArvadosApiClient
     @arvados_schema ||= api 'schema', ''
   end
 
+  def discovery
+    @discovery ||= api '../../discovery/v1/apis/arvados/v1/rest', ''
+  end
+
   def kind_class(kind)
     kind.match(/^arvados\#(.+?)(_list|List)?$/)[1].pluralize.classify.constantize rescue nil
   end