From 22746582164b44375db40a68011488aea348baca Mon Sep 17 00:00:00 2001 From: Aleksandr Zykov Date: Thu, 8 Oct 2015 19:26:07 +0500 Subject: [PATCH 1/3] pretty json in request + pretty api.vnd+json --- lib/rspec_api_documentation/client_base.rb | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/rspec_api_documentation/client_base.rb b/lib/rspec_api_documentation/client_base.rb index 10ec1fbd..b3c188b9 100644 --- a/lib/rspec_api_documentation/client_base.rb +++ b/lib/rspec_api_documentation/client_base.rb @@ -62,7 +62,7 @@ def document_example(method, path) request_metadata[:request_method] = method request_metadata[:request_path] = path - request_metadata[:request_body] = request_body.empty? ? nil : request_body.force_encoding("UTF-8") + request_metadata[:request_body] = record_request_body(request_content_type, request_body) request_metadata[:request_headers] = request_headers request_metadata[:request_query_parameters] = query_hash request_metadata[:request_content_type] = request_content_type @@ -89,13 +89,22 @@ def record_response_body(response_content_type, response_body) return nil if response_body.empty? if response_body.encoding == Encoding::ASCII_8BIT "[binary data]" - elsif response_content_type =~ /application\/json/ + elsif response_content_type =~ /application\/(vnd\.api\+)json/ JSON.pretty_generate(JSON.parse(response_body)) else response_body end end + def record_request_body(request_content_type, request_body) + return nil if request_body.empty? + if request_content_type =~ /application\/(vnd\.api\+)json/ + JSON.pretty_generate(JSON.parse(request_body.force_encoding("UTF-8"))) + else + request_body.force_encoding("UTF-8") + end + end + def clean_out_uploaded_data(params, request_body) params.each do |_, value| if value.is_a?(Hash) From 9756859445c19eb0e3eb5ec86ccecc16000c07c2 Mon Sep 17 00:00:00 2001 From: Aleksandr Zykov Date: Fri, 20 Nov 2015 13:11:51 +0500 Subject: [PATCH 2/3] Fixed pretty application/json --- lib/rspec_api_documentation/client_base.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rspec_api_documentation/client_base.rb b/lib/rspec_api_documentation/client_base.rb index b3c188b9..eaf38677 100644 --- a/lib/rspec_api_documentation/client_base.rb +++ b/lib/rspec_api_documentation/client_base.rb @@ -98,7 +98,7 @@ def record_response_body(response_content_type, response_body) def record_request_body(request_content_type, request_body) return nil if request_body.empty? - if request_content_type =~ /application\/(vnd\.api\+)json/ + if request_content_type =~ /application\/(vnd\.api\+)?json/ JSON.pretty_generate(JSON.parse(request_body.force_encoding("UTF-8"))) else request_body.force_encoding("UTF-8") From d79b403f285ce8dd740d2ffb526768b4a5e7012c Mon Sep 17 00:00:00 2001 From: Aleksandr Zykov Date: Fri, 20 Nov 2015 13:16:34 +0500 Subject: [PATCH 3/3] Fixed pretty application/json in response --- lib/rspec_api_documentation/client_base.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rspec_api_documentation/client_base.rb b/lib/rspec_api_documentation/client_base.rb index eaf38677..5529d2cd 100644 --- a/lib/rspec_api_documentation/client_base.rb +++ b/lib/rspec_api_documentation/client_base.rb @@ -89,7 +89,7 @@ def record_response_body(response_content_type, response_body) return nil if response_body.empty? if response_body.encoding == Encoding::ASCII_8BIT "[binary data]" - elsif response_content_type =~ /application\/(vnd\.api\+)json/ + elsif response_content_type =~ /application\/(vnd\.api\+)?json/ JSON.pretty_generate(JSON.parse(response_body)) else response_body