response.body is sometimes too strange to be parse by JSON

This commit is contained in:
jules 2015-10-26 11:05:54 +01:00
parent b8bd70e57b
commit 918cba5c2d

View file

@ -3,9 +3,21 @@ module GrapeLogging
class Response < GrapeLogging::Loggers::Base
def parameters(request, response)
{
response: response.body
response: serialized_response_body(response)
}
end
private
# In some cases, response.body is not parseable by JSON.
# For example, if you POST on a PUT endpoint, response.body is egal to """".
# It's strange but it's the Grape behavior...
def serialized_response_body(response)
begin
response.body.map{ |body| JSON.parse(body) }
rescue => e
""
end
end
end
end
end