From 918cba5c2d56c4a2befb43bf8355865fb3f81ba3 Mon Sep 17 00:00:00 2001 From: jules Date: Mon, 26 Oct 2015 11:05:54 +0100 Subject: [PATCH] response.body is sometimes too strange to be parse by JSON --- lib/grape_logging/loggers/response.rb | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/grape_logging/loggers/response.rb b/lib/grape_logging/loggers/response.rb index e16d404..ae45e3d 100644 --- a/lib/grape_logging/loggers/response.rb +++ b/lib/grape_logging/loggers/response.rb @@ -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