end
def show
- render(text: Oj.dump(@object.as_api_response(nil, select: @select),
- mode: :compat).html_safe,
- content_type: 'application/json')
+ send_json @object.as_api_response(nil, select: @select)
end
def create
err[:error_token] = [Time.now.utc.to_i, "%08x" % rand(16 ** 8)].join("+")
status = err.delete(:status) || 422
logger.error "Error #{err[:error_token]}: #{status}"
- render json: err, status: status
+ send_json err, status: status
+ end
+
+ def send_json response, opts={}
+ # The obvious render(json: ...) forces a slow JSON encoder. See
+ # #3021 and commit logs. Might be fixed in Rails 4.1.
+ render({
+ text: Oj.dump(response, mode: :compat).html_safe,
+ content_type: 'application/json'
+ }.merge opts)
end
def find_objects_for_index
except(:limit).except(:offset).
count(:id, distinct: true)
end
- render(text: Oj.dump(@object_list, mode: :compat).html_safe,
- content_type: 'application/json')
+ send_json @object_list
end
def remote_ip
if @object.is_a? Collection
super
else
- render json: @object
+ send_json @object
end
end
visited = {}
search_edges(visited, @object[:portable_data_hash], :search_up)
search_edges(visited, @object[:uuid], :search_up)
- render json: visited
+ send_json visited
end
def used_by
visited = {}
search_edges(visited, @object[:uuid], :search_down)
search_edges(visited, @object[:portable_data_hash], :search_down)
- render json: visited
+ send_json visited
end
protected
:items_available => @items_available,
:items => @objects.as_api_response(nil)
}
- render json: @object_list
+ send_json @object_list
end
protected
# Render the :superuser view (i.e., include the ping_secret) even
# if !current_user.is_admin. This is safe because @object.ping's
# success implies the ping_secret was already known by the client.
- render json: @object.as_api_response(:superuser)
+ send_json @object.as_api_response(:superuser)
end
end
end
@object.ping(ping_data)
if @object.info['ping_secret'] == params[:ping_secret]
- render json: @object.as_api_response(:superuser)
+ send_json @object.as_api_response(:superuser)
else
raise "Invalid ping_secret after ping"
end
end
end
end
- render json: {
- kind: 'arvados#RepositoryPermissionSnapshot',
- repositories: @repo_info.values,
- user_keys: @user_aks
- }
+ send_json(kind: 'arvados#RepositoryPermissionSnapshot',
+ repositories: @repo_info.values,
+ user_keys: @user_aks)
end
end
end
discovery
end
- render json: discovery
+ send_json discovery
end
end
UserNotifier.account_is_setup(@object).deliver
end
- render json: { kind: "arvados#HashList", items: @response.as_api_response(nil) }
+ send_json kind: "arvados#HashList", items: @response.as_api_response(nil)
end
# delete user agreements, vm, repository, login links; set state to inactive
end
end
end
- render json: { kind: "arvados#HashList", items: @response }
+ send_json kind: "arvados#HashList", items: @response
end
end
end
# Done.
- render json: {success: true}
+ send_json success: true
end
end