X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/2b374566a4a6e9d5dc532c2a8e4ffecaa4f0d719..c2d962b16eb0a68a880326abfbc04d07db230815:/services/api/app/controllers/application_controller.rb diff --git a/services/api/app/controllers/application_controller.rb b/services/api/app/controllers/application_controller.rb index 348ed13d53..c6e7da0e11 100644 --- a/services/api/app/controllers/application_controller.rb +++ b/services/api/app/controllers/application_controller.rb @@ -83,7 +83,8 @@ class ApplicationController < ActionController::Base else errors = [e.inspect] end - render json: { errors: errors }, status: 422 + status = e.respond_to?(:http_status) ? e.http_status : 422 + render json: { errors: errors }, status: status end def render_not_found(e=ActionController::RoutingError.new("Path not found")) @@ -327,13 +328,16 @@ class ApplicationController < ActionController::Base def render_list @object_list = { - :kind => "arvados##{resource_name}List", + :kind => "arvados##{(@response_resource_name || resource_name).camelize(:lower)}List", :etag => "", :self_link => "", :next_page_token => "", :next_link => "", :items => @objects.as_api_response(nil) } + if @objects.respond_to? :except + @object_list[:items_available] = @objects.except(:limit).count + end render json: @object_list end @@ -354,4 +358,9 @@ class ApplicationController < ActionController::Base order: { type: 'string', required: false } } end + + def client_accepts_plain_text_stream + (request.headers['Accept'].split(' ') & + ['text/plain', '*/*']).count > 0 + end end