X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d3229c7f727f40436cad66fba5f3345e0b3eede5..61d399a57fd1e867cc243a0dab0fad73d9689734:/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 0a99d662cb..aa3269a43d 100644 --- a/apps/workbench/app/models/arvados_api_client.rb +++ b/apps/workbench/app/models/arvados_api_client.rb @@ -101,8 +101,13 @@ class ArvadosApiClient url.sub! '/arvados/v1/../../', '/' query = { - 'api_token' => tokens[:arvados_api_token] || Thread.current[:arvados_api_token] || '', - 'reader_tokens' => (tokens[:reader_tokens] || Thread.current[:reader_tokens] || []).to_json, + 'api_token' => (tokens[:arvados_api_token] || + Thread.current[:arvados_api_token] || + ''), + 'reader_tokens' => ((tokens[:reader_tokens] || + Thread.current[:reader_tokens] || + []) + + [Rails.configuration.anonymous_user_token]).to_json, } if !data.nil? data.each do |k,v| @@ -119,11 +124,15 @@ class ArvadosApiClient else query["_method"] = "GET" end + if @@profiling_enabled query["_profile"] = "true" end header = {"Accept" => "application/json"} + if Rails.configuration.include_accept_encoding_header_in_api_requests + header["Accept-Encoding"] = "gzip, deflate" + end profile_checkpoint { "Prepare request #{url} #{query[:uuid]} #{query[:where]} #{query[:filters]} #{query[:order]}" } msg = @client_mtx.synchronize do @@ -140,6 +149,7 @@ class ArvadosApiClient rescue Oj::ParseError resp = nil end + if not resp.is_a? Hash raise InvalidApiResponseException.new(url, msg) elsif msg.status_code != 200 @@ -213,6 +223,7 @@ class ArvadosApiClient CGI.escape(k.to_s) + '=' + CGI.escape(v.to_s) }.join('&') end + uri end def arvados_logout_url(params={})