diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/PerlClientCodegen.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/PerlClientCodegen.java index 4edead804d5..9062c2722d7 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/PerlClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/PerlClientCodegen.java @@ -38,7 +38,17 @@ public class PerlClientCodegen extends DefaultCodegen implements CodegenConfig { reservedWords = new HashSet ( Arrays.asList( - "__halt_compiler", "abstract", "and", "array", "as", "break", "callable", "case", "catch", "class", "clone", "const", "continue", "declare", "default", "die", "do", "echo", "else", "elseif", "empty", "enddeclare", "endfor", "endforeach", "endif", "endswitch", "endwhile", "eval", "exit", "extends", "final", "for", "foreach", "function", "global", "goto", "if", "implements", "include", "include_once", "instanceof", "insteadof", "interface", "isset", "list", "namespace", "new", "or", "print", "private", "protected", "public", "require", "require_once", "return", "static", "switch", "throw", "trait", "try", "unset", "use", "var", "while", "xor") + "else", "lock", "qw", + "__END__", "elsif", "lt", "qx", + "__FILE__", "eq", "m", "s", + "__LINE__", "exp", "ne", "sub", + "__PACKAGE__", "for", "no", "tr", + "and", "foreach", "or", "unless", + "cmp", "ge", "package", "until", + "continue", "gt", "q", "while", + "CORE", "if", "qq", "xor", + "do", "le", "qr", "y" + ) ); additionalProperties.put("invokerPackage", invokerPackage); @@ -47,17 +57,25 @@ public class PerlClientCodegen extends DefaultCodegen implements CodegenConfig { additionalProperties.put("artifactVersion", artifactVersion); languageSpecificPrimitives.add("int"); - languageSpecificPrimitives.add("array"); - languageSpecificPrimitives.add("map"); + languageSpecificPrimitives.add("Math::BigInt"); + languageSpecificPrimitives.add("double"); languageSpecificPrimitives.add("string"); + languageSpecificPrimitives.add("boolean"); languageSpecificPrimitives.add("DateTime"); + languageSpecificPrimitives.add("ARRAY"); + languageSpecificPrimitives.add("HASH"); - typeMapping.put("long", "int"); typeMapping.put("integer", "int"); - typeMapping.put("Array", "array"); - typeMapping.put("String", "string"); - typeMapping.put("List", "array"); - typeMapping.put("map", "map"); + typeMapping.put("long", "Math::BigInt"); + typeMapping.put("float", "double"); + typeMapping.put("double", "double"); + typeMapping.put("boolean", "boolean"); + typeMapping.put("string", "string"); + typeMapping.put("date", "DateTime"); + typeMapping.put("dateTime", "DateTime"); + typeMapping.put("password", "string"); + typeMapping.put("array", "ARRAY"); + typeMapping.put("map", "HASH"); supportingFiles.add(new SupportingFile("APIClient.mustache", "lib/WWW/" + invokerPackage, "APIClient.pm")); supportingFiles.add(new SupportingFile("BaseObject.mustache", "lib/WWW/" + invokerPackage, "Object/BaseObject.pm")); diff --git a/modules/swagger-codegen/src/main/resources/perl/BaseObject.mustache b/modules/swagger-codegen/src/main/resources/perl/BaseObject.mustache index 9fab6611593..7ae05c07585 100644 --- a/modules/swagger-codegen/src/main/resources/perl/BaseObject.mustache +++ b/modules/swagger-codegen/src/main/resources/perl/BaseObject.mustache @@ -65,7 +65,7 @@ sub _deserialize { if ($type eq 'DateTime') { return DateTime->from_epoch(epoch => str2time($data)); - } elsif ( grep( /^$type$/, ('string', 'int', 'float', 'bool')) ) { + } elsif ( grep( /^$type$/, ('int', 'Math::BigInt', 'double', 'string', 'boolean'))) { return $data; } else { # hash(model) my $_instance = eval "WWW::{{invokerPackage}}::Object::$type->new()"; 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 a5be613d472..d1146ec4536 100644 --- a/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/BaseObject.pm +++ b/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/BaseObject.pm @@ -65,7 +65,7 @@ sub _deserialize { if ($type eq 'DateTime') { return DateTime->from_epoch(epoch => str2time($data)); - } elsif ( grep( /^$type$/, ('string', 'int', 'float', 'bool')) ) { + } elsif ( grep( /^$type$/, ('int', 'Math::BigInt', 'double', 'string', 'boolean'))) { return $data; } else { # hash(model) my $_instance = eval "WWW::SwaggerClient::Object::$type->new()"; diff --git a/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Category.pm b/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Category.pm index 857dccdce5a..d72dc2c78c7 100644 --- a/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Category.pm +++ b/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Category.pm @@ -20,7 +20,7 @@ use base "WWW::SwaggerClient::Object::BaseObject"; # my $swagger_types = { - 'id' => 'int', + 'id' => 'Math::BigInt', 'name' => 'string' }; diff --git a/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Order.pm b/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Order.pm index 35449647e13..d76d03d8d3b 100644 --- a/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Order.pm +++ b/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Order.pm @@ -20,8 +20,8 @@ use base "WWW::SwaggerClient::Object::BaseObject"; # my $swagger_types = { - 'id' => 'int', - 'pet_id' => 'int', + 'id' => 'Math::BigInt', + 'pet_id' => 'Math::BigInt', 'quantity' => 'int', 'ship_date' => 'DateTime', 'status' => 'string', diff --git a/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Pet.pm b/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Pet.pm index f53aacdf0d3..ddcc0793f23 100644 --- a/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Pet.pm +++ b/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Pet.pm @@ -20,11 +20,11 @@ use base "WWW::SwaggerClient::Object::BaseObject"; # my $swagger_types = { - 'id' => 'int', + 'id' => 'Math::BigInt', 'category' => 'Category', 'name' => 'string', - 'photo_urls' => 'array[string]', - 'tags' => 'array[Tag]', + 'photo_urls' => 'ARRAY[string]', + 'tags' => 'ARRAY[Tag]', 'status' => 'string' }; diff --git a/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Tag.pm b/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Tag.pm index 35850032d5c..79f259340ba 100644 --- a/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Tag.pm +++ b/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/Tag.pm @@ -20,7 +20,7 @@ use base "WWW::SwaggerClient::Object::BaseObject"; # my $swagger_types = { - 'id' => 'int', + 'id' => 'Math::BigInt', 'name' => 'string' }; diff --git a/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/User.pm b/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/User.pm index 88a396ece3a..bc8971fb5e2 100644 --- a/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/User.pm +++ b/samples/client/petstore/perl/lib/WWW/SwaggerClient/Object/User.pm @@ -20,7 +20,7 @@ use base "WWW::SwaggerClient::Object::BaseObject"; # my $swagger_types = { - 'id' => 'int', + 'id' => 'Math::BigInt', 'username' => 'string', 'first_name' => 'string', 'last_name' => 'string', diff --git a/samples/client/petstore/perl/lib/WWW/SwaggerClient/PetApi.pm b/samples/client/petstore/perl/lib/WWW/SwaggerClient/PetApi.pm index 9dbceba4291..b1985703ddd 100644 --- a/samples/client/petstore/perl/lib/WWW/SwaggerClient/PetApi.pm +++ b/samples/client/petstore/perl/lib/WWW/SwaggerClient/PetApi.pm @@ -171,8 +171,8 @@ sub new { # # Finds Pets by status # - # @param array[string] $status Status values that need to be considered for filter (required) - # @return array[Pet] + # @param ARRAY[string] $status Status values that need to be considered for filter (required) + # @return ARRAY[Pet] # sub find_pets_by_status { my ($self, %args) = @_; @@ -215,7 +215,7 @@ sub new { if (!$response) { return; } - my $_response_object = $self->{api_client}->deserialize('array[Pet]', $response); + my $_response_object = $self->{api_client}->deserialize('ARRAY[Pet]', $response); return $_response_object; } @@ -225,8 +225,8 @@ sub new { # # Finds Pets by tags # - # @param array[string] $tags Tags to filter by (required) - # @return array[Pet] + # @param ARRAY[string] $tags Tags to filter by (required) + # @return ARRAY[Pet] # sub find_pets_by_tags { my ($self, %args) = @_; @@ -269,7 +269,7 @@ sub new { if (!$response) { return; } - my $_response_object = $self->{api_client}->deserialize('array[Pet]', $response); + my $_response_object = $self->{api_client}->deserialize('ARRAY[Pet]', $response); return $_response_object; } @@ -279,7 +279,7 @@ sub new { # # Find pet by ID # - # @param int $pet_id ID of pet that needs to be fetched (required) + # @param Math::BigInt $pet_id ID of pet that needs to be fetched (required) # @return Pet # sub get_pet_by_id { @@ -411,7 +411,7 @@ sub new { # Deletes a pet # # @param string $api_key (required) - # @param int $pet_id Pet id to delete (required) + # @param Math::BigInt $pet_id Pet id to delete (required) # @return void # sub delete_pet { @@ -472,7 +472,7 @@ sub new { # # uploads an image # - # @param int $pet_id ID of pet to update (required) + # @param Math::BigInt $pet_id ID of pet to update (required) # @param string $additional_metadata Additional data to pass to server (required) # @param file $file file to upload (required) # @return void diff --git a/samples/client/petstore/perl/lib/WWW/SwaggerClient/StoreApi.pm b/samples/client/petstore/perl/lib/WWW/SwaggerClient/StoreApi.pm index 6ef68489325..bb361d05a43 100644 --- a/samples/client/petstore/perl/lib/WWW/SwaggerClient/StoreApi.pm +++ b/samples/client/petstore/perl/lib/WWW/SwaggerClient/StoreApi.pm @@ -65,7 +65,7 @@ sub new { # # Returns pet inventories by status # - # @return map[string,int] + # @return HASH[string,int] # sub get_inventory { my ($self, %args) = @_; @@ -105,7 +105,7 @@ sub new { if (!$response) { return; } - my $_response_object = $self->{api_client}->deserialize('map[string,int]', $response); + my $_response_object = $self->{api_client}->deserialize('HASH[string,int]', $response); return $_response_object; } diff --git a/samples/client/petstore/perl/lib/WWW/SwaggerClient/UserApi.pm b/samples/client/petstore/perl/lib/WWW/SwaggerClient/UserApi.pm index a3955b7d4f8..d3869b62555 100644 --- a/samples/client/petstore/perl/lib/WWW/SwaggerClient/UserApi.pm +++ b/samples/client/petstore/perl/lib/WWW/SwaggerClient/UserApi.pm @@ -120,7 +120,7 @@ sub new { # # Creates list of users with given input array # - # @param array[User] $body List of user object (required) + # @param ARRAY[User] $body List of user object (required) # @return void # sub create_users_with_array_input { @@ -171,7 +171,7 @@ sub new { # # Creates list of users with given input array # - # @param array[User] $body List of user object (required) + # @param ARRAY[User] $body List of user object (required) # @return void # sub create_users_with_list_input { diff --git a/samples/client/petstore/perl/test.pl b/samples/client/petstore/perl/test.pl index b92e4cfcff1..2c545c7aac9 100755 --- a/samples/client/petstore/perl/test.pl +++ b/samples/client/petstore/perl/test.pl @@ -37,5 +37,3 @@ print "\nupdate_pet_with_form:".Dumper $api->update_pet_with_form(pet_id => $pet print "\ndelete_pet:".Dumper $api->delete_pet(pet_id => $pet_id); - -