From 0ffe53933df28281ea844fc86a3654bff7dd87db Mon Sep 17 00:00:00 2001 From: xhh Date: Wed, 3 Jun 2015 21:17:42 +0800 Subject: [PATCH] Bug fix: "null" was used as post body for empty form parameters The form parameters could be empty when all of them are optional and no values are assigned to them. --- .../src/main/resources/ruby/swagger/request.mustache | 6 ++++-- .../petstore/ruby/lib/swagger_client/swagger/request.rb | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/ruby/swagger/request.mustache b/modules/swagger-codegen/src/main/resources/ruby/swagger/request.mustache index 3c6aa31df4e7..99b58d58be85 100644 --- a/modules/swagger-codegen/src/main/resources/ruby/swagger/request.mustache +++ b/modules/swagger-codegen/src/main/resources/ruby/swagger/request.mustache @@ -120,14 +120,16 @@ module {{moduleName}} # For form parameters, remove empty value def outgoing_body # http form - if @body.nil? && @form_params && !@form_params.empty? + if headers['Content-Type'] == 'application/x-www-form-urlencoded' data = form_params.dup data.each do |key, value| data[key] = value.to_s if value && !value.is_a?(File) # remove emtpy form parameter end data - else # http body is JSON + elsif @body # http body is JSON @body.is_a?(String) ? @body : @body.to_json + else + nil end end diff --git a/samples/client/petstore/ruby/lib/swagger_client/swagger/request.rb b/samples/client/petstore/ruby/lib/swagger_client/swagger/request.rb index fea2ea2a5cdc..4cd5d84b0b9b 100644 --- a/samples/client/petstore/ruby/lib/swagger_client/swagger/request.rb +++ b/samples/client/petstore/ruby/lib/swagger_client/swagger/request.rb @@ -119,14 +119,16 @@ module SwaggerClient # For form parameters, remove empty value def outgoing_body # http form - if @body.nil? && @form_params && !@form_params.empty? + if headers['Content-Type'] == 'application/x-www-form-urlencoded' data = form_params.dup data.each do |key, value| data[key] = value.to_s if value && !value.is_a?(File) # remove emtpy form parameter end data - else # http body is JSON + elsif @body # http body is JSON @body.is_a?(String) ? @body : @body.to_json + else + nil end end