X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0b6f9c28663b06e173cfe0408fe073bf050bb3ee..611a3323ea110671c5fa021e14f93b24e4a6d7b7:/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 9f34a29e5b..7076799f83 100644 --- a/apps/workbench/app/models/arvados_api_client.rb +++ b/apps/workbench/app/models/arvados_api_client.rb @@ -8,6 +8,10 @@ class ArvadosApiClient def initialize(request_url, errmsg) @request_url = request_url @api_response ||= {} + errors = @api_response[:errors] + if not errors.is_a?(Array) + @api_response[:errors] = [errors || errmsg] + end super(errmsg) end end @@ -120,7 +124,7 @@ class ArvadosApiClient header = {"Accept" => "application/json"} - profile_checkpoint { "Prepare request #{url} #{query[:uuid]} #{query[:where]} #{query[:filters]}" } + profile_checkpoint { "Prepare request #{url} #{query[:uuid]} #{query[:where]} #{query[:filters]} #{query[:order]}" } msg = @client_mtx.synchronize do begin @api_client.post(url, query, header: header) @@ -138,7 +142,8 @@ class ArvadosApiClient if not resp.is_a? Hash raise InvalidApiResponseException.new(url, msg) elsif msg.status_code != 200 - error_class = ERROR_CODE_CLASSES.fetch(msg.status_code, ApiError) + error_class = ERROR_CODE_CLASSES.fetch(msg.status_code, + ApiErrorResponseException) raise error_class.new(url, msg) end