diff --git a/modules/swagger-codegen/src/main/resources/perl/APIClient.mustache b/modules/swagger-codegen/src/main/resources/perl/APIClient.mustache index 44d5b60b21e..04f0a006356 100644 --- a/modules/swagger-codegen/src/main/resources/perl/APIClient.mustache +++ b/modules/swagger-codegen/src/main/resources/perl/APIClient.mustache @@ -75,15 +75,24 @@ sub call_api { } # body data - my $_body_data = $post_params ? $post_params : $body_data; + my $_body_data = %$post_params ? $post_params : to_json($body_data->to_hash); # Make the HTTP request my $_request; switch ($method) { case 'POST' { - #TODO: multipart + # multipart + my $_content_type = lc $header_params->{'Content-Type'} eq 'multipart/form' ? + 'form-data' : $header_params->{'Content-Type'}; $_request = POST($_url, Accept => $header_params->{Accept}, - Content_Type => $header_params->{'Content-Type'}, Content => $_body_data); + Content_Type => $_content_type, Content => $_body_data); + } + case 'PUT' { + # multipart + my $_content_type = lc $header_params->{'Content-Type'} eq 'multipart/form' ? + 'form-data' : $header_params->{'Content-Type'}; + $_request = PUT($_url, Accept => $header_params->{Accept}, + Content_Type => $_content_type, Content => $_body_data); } case 'GET' { $_request = GET($_url, Accept => $header_params->{'Accept'}, diff --git a/modules/swagger-codegen/src/main/resources/perl/BaseObject.mustache b/modules/swagger-codegen/src/main/resources/perl/BaseObject.mustache index 4a0be0aaea0..9fab6611593 100644 --- a/modules/swagger-codegen/src/main/resources/perl/BaseObject.mustache +++ b/modules/swagger-codegen/src/main/resources/perl/BaseObject.mustache @@ -29,7 +29,7 @@ sub TO_JSON { my $self = shift; my $_data = {}; foreach my $_key (keys $self->get_attribute_map) { - if (defined $self->{$self->get_attribute_map->{$_key}}) { + if (defined $self->{$_key}) { $_data->{$self->get_attribute_map->{$_key}} = $self->{$_key}; } } diff --git a/samples/client/petstore/perl/lib/WWW/SwaggerClient/APIClient.pm b/samples/client/petstore/perl/lib/WWW/SwaggerClient/APIClient.pm index 18246004781..577bd23003f 100644 --- a/samples/client/petstore/perl/lib/WWW/SwaggerClient/APIClient.pm +++ b/samples/client/petstore/perl/lib/WWW/SwaggerClient/APIClient.pm @@ -75,15 +75,24 @@ sub call_api { } # body data - my $_body_data = $post_params ? $post_params : $body_data; + my $_body_data = %$post_params ? $post_params : to_json($body_data->to_hash); # Make the HTTP request my $_request; switch ($method) { case 'POST' { - #TODO: multipart + # multipart + my $_content_type = lc $header_params->{'Content-Type'} eq 'multipart/form' ? + 'form-data' : $header_params->{'Content-Type'}; $_request = POST($_url, Accept => $header_params->{Accept}, - Content_Type => $header_params->{'Content-Type'}, Content => $_body_data); + Content_Type => $_content_type, Content => $_body_data); + } + case 'PUT' { + # multipart + my $_content_type = lc $header_params->{'Content-Type'} eq 'multipart/form' ? + 'form-data' : $header_params->{'Content-Type'}; + $_request = PUT($_url, Accept => $header_params->{Accept}, + Content_Type => $_content_type, Content => $_body_data); } case 'GET' { $_request = GET($_url, Accept => $header_params->{'Accept'}, diff --git a/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/BaseObject.pm b/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/BaseObject.pm index 584710238ad..a5be613d472 100644 --- a/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/BaseObject.pm +++ b/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/BaseObject.pm @@ -29,7 +29,7 @@ sub TO_JSON { my $self = shift; my $_data = {}; foreach my $_key (keys $self->get_attribute_map) { - if (defined $self->{$self->get_attribute_map->{$_key}}) { + if (defined $self->{$_key}) { $_data->{$self->get_attribute_map->{$_key}} = $self->{$_key}; } } diff --git a/samples/client/petstore/perl/test.pl b/samples/client/petstore/perl/test.pl index ed7dff0b33c..3fb7c3e0a08 100644 --- a/samples/client/petstore/perl/test.pl +++ b/samples/client/petstore/perl/test.pl @@ -17,7 +17,7 @@ my $api = WWW::SwaggerClient::PetApi->new(); #print WWW::SwaggerClient::APIClient::to_form_value('testing 123'); -my $pet_id = 5; +my $pet_id = 88; my $dt = DateTime->new( year => 1972, month => 12, @@ -32,14 +32,13 @@ print "dt = $dt\n"; print "dt = ".$dt->datetime()."\n"; -my $tag = WWW::SwaggerClient::Object::Tag->new({'id' => 'tag1', 'name' => 'just kidding', +my $category = WWW::SwaggerClient::Object::Category->new({'id' => '2', 'name' => 'pending'}); +my $tag = WWW::SwaggerClient::Object::Tag->new({'id' => '1', 'name' => 'just kidding', "photoUrls" => ['123', 'oop']}); -my $pet = WWW::SwaggerClient::Object::Pet->new({'id' => 5, 'name' => 'haha', - "photoUrls" => ['123', 'oop'], 'tags' => [$tag], 'created' => $dt}); +my $pet = WWW::SwaggerClient::Object::Pet->new({'id' => $pet_id, 'name' => 'perl test', + "photoUrls" => ['123', 'oop'], 'tags' => [$tag], 'status' => 'pending'}); -##print Dumper $pet; -print "pet ref=".ref($pet)."\n"; -print "tag ref=".ref($tag)."\n"; +print Dumper $pet; my $json = JSON->new->convert_blessed; #print $json->convert_blessed->encode($pet); @@ -52,5 +51,11 @@ $pet2 = $pet2->from_hash($pet->to_hash); print Dumper($pet2->to_hash); #exit; print "============================\n"; -print Dumper $api->get_pet_by_id({pet_id => $pet_id}); -print Dumper $api->update_pet_with_form({pet_id => $pet_id, name => 'test_name', status => 'test status'}); +print Dumper $api->add_pet({body => $pet}); +#print Dumper $api->get_pet_by_id({pet_id => $pet_id}); +#print Dumper $api->update_pet_with_form({pet_id => $pet_id, name => 'test_name', status => 'test status'}); +#print Dumper $api->delete_pet({pet_id => $pet_id}); + + + +