From d7d994620cd7a055d2ceb45f00de70074aee5be8 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Mon, 17 Dec 2018 15:28:20 +0800 Subject: [PATCH] Add multiple inheritance support to Perl client (#1681) * add multiple inheritance support to perl client * remove allof test from fake petstore --- bin/openapi3/perl-petstore.sh | 2 +- .../codegen/languages/PerlClientCodegen.java | 3 + .../main/resources/perl/BaseObject.mustache | 48 +- .../src/main/resources/perl/object.mustache | 3 +- .../petstore/perl/.openapi-generator/VERSION | 2 +- samples/client/petstore/perl/README.md | 7 +- samples/client/petstore/perl/docs/Adult.md | 18 + samples/client/petstore/perl/docs/Cat.md | 2 - samples/client/petstore/perl/docs/Category.md | 2 +- samples/client/petstore/perl/docs/Child.md | 16 + .../client/petstore/perl/docs/DefaultApi.md | 54 + samples/client/petstore/perl/docs/Dog.md | 2 - samples/client/petstore/perl/docs/FakeApi.md | 56 + samples/client/petstore/perl/docs/Foo.md | 15 + samples/client/petstore/perl/docs/Human.md | 16 + .../client/petstore/perl/docs/InlineObject.md | 16 + .../petstore/perl/docs/InlineObject1.md | 16 + .../petstore/perl/docs/InlineObject2.md | 16 + .../petstore/perl/docs/InlineObject3.md | 28 + .../petstore/perl/docs/InlineObject4.md | 16 + .../petstore/perl/docs/InlineObject5.md | 16 + .../perl/docs/InlineResponseDefault.md | 15 + samples/client/petstore/perl/docs/MapTest.md | 2 +- samples/client/petstore/perl/docs/Person.md | 20 + samples/client/petstore/perl/docs/PetApi.md | 2 +- .../lib/WWW/OpenAPIClient/AnotherFakeApi.pm | 67 +- .../perl/lib/WWW/OpenAPIClient/ApiClient.pm | 406 +++---- .../perl/lib/WWW/OpenAPIClient/ApiFactory.pm | 28 +- .../lib/WWW/OpenAPIClient/Configuration.pm | 118 +- .../perl/lib/WWW/OpenAPIClient/DefaultApi.pm | 100 ++ .../perl/lib/WWW/OpenAPIClient/FakeApi.pm | 1048 +++++++++-------- .../OpenAPIClient/FakeClassnameTags123Api.pm | 67 +- .../Object/AdditionalPropertiesClass.pm | 169 ++- .../lib/WWW/OpenAPIClient/Object/Adult.pm | 231 ++++ .../lib/WWW/OpenAPIClient/Object/Animal.pm | 169 ++- .../WWW/OpenAPIClient/Object/ApiResponse.pm | 187 ++- .../Object/ArrayOfArrayOfNumberOnly.pm | 151 ++- .../OpenAPIClient/Object/ArrayOfNumberOnly.pm | 151 ++- .../lib/WWW/OpenAPIClient/Object/ArrayTest.pm | 186 ++- .../OpenAPIClient/Object/Capitalization.pm | 241 ++-- .../perl/lib/WWW/OpenAPIClient/Object/Cat.pm | 178 ++- .../lib/WWW/OpenAPIClient/Object/Category.pm | 169 ++- .../lib/WWW/OpenAPIClient/Object/Child.pm | 199 ++++ .../WWW/OpenAPIClient/Object/ClassModel.pm | 152 ++- .../lib/WWW/OpenAPIClient/Object/Client.pm | 151 ++- .../perl/lib/WWW/OpenAPIClient/Object/Dog.pm | 178 ++- .../WWW/OpenAPIClient/Object/EnumArrays.pm | 169 ++- .../lib/WWW/OpenAPIClient/Object/EnumClass.pm | 130 +- .../lib/WWW/OpenAPIClient/Object/EnumTest.pm | 222 ++-- .../perl/lib/WWW/OpenAPIClient/Object/File.pm | 151 ++- .../Object/FileSchemaTestClass.pm | 168 ++- .../perl/lib/WWW/OpenAPIClient/Object/Foo.pm | 177 +++ .../WWW/OpenAPIClient/Object/FormatTest.pm | 367 +++--- .../OpenAPIClient/Object/HasOnlyReadOnly.pm | 169 ++- .../lib/WWW/OpenAPIClient/Object/Human.pm | 186 +++ .../WWW/OpenAPIClient/Object/InlineObject.pm | 186 +++ .../WWW/OpenAPIClient/Object/InlineObject1.pm | 186 +++ .../WWW/OpenAPIClient/Object/InlineObject2.pm | 186 +++ .../WWW/OpenAPIClient/Object/InlineObject3.pm | 294 +++++ .../WWW/OpenAPIClient/Object/InlineObject4.pm | 186 +++ .../WWW/OpenAPIClient/Object/InlineObject5.pm | 186 +++ .../Object/InlineResponseDefault.pm | 178 +++ .../perl/lib/WWW/OpenAPIClient/Object/List.pm | 151 ++- .../lib/WWW/OpenAPIClient/Object/MapTest.pm | 205 ++-- ...dPropertiesAndAdditionalPropertiesClass.pm | 186 ++- .../OpenAPIClient/Object/Model200Response.pm | 169 ++- .../WWW/OpenAPIClient/Object/ModelReturn.pm | 151 ++- .../perl/lib/WWW/OpenAPIClient/Object/Name.pm | 205 ++-- .../WWW/OpenAPIClient/Object/NumberOnly.pm | 151 ++- .../lib/WWW/OpenAPIClient/Object/Order.pm | 241 ++-- .../OpenAPIClient/Object/OuterComposite.pm | 187 ++- .../lib/WWW/OpenAPIClient/Object/OuterEnum.pm | 130 +- .../lib/WWW/OpenAPIClient/Object/Person.pm | 222 ++++ .../perl/lib/WWW/OpenAPIClient/Object/Pet.pm | 240 ++-- .../WWW/OpenAPIClient/Object/ReadOnlyFirst.pm | 169 ++- .../OpenAPIClient/Object/SpecialModelName.pm | 151 ++- .../perl/lib/WWW/OpenAPIClient/Object/Tag.pm | 169 ++- .../perl/lib/WWW/OpenAPIClient/Object/User.pm | 277 +++-- .../perl/lib/WWW/OpenAPIClient/PetApi.pm | 609 +++++----- .../perl/lib/WWW/OpenAPIClient/Role.pm | 146 +-- .../lib/WWW/OpenAPIClient/Role/AutoDoc.pm | 387 +++--- .../perl/lib/WWW/OpenAPIClient/StoreApi.pm | 217 ++-- .../perl/lib/WWW/OpenAPIClient/UserApi.pm | 444 +++---- samples/client/petstore/perl/pom.xml | 13 + samples/client/petstore/perl/t/AdultTest.t | 33 + samples/client/petstore/perl/t/ChildTest.t | 33 + .../client/petstore/perl/t/DefaultApiTest.t | 40 + samples/client/petstore/perl/t/FooTest.t | 33 + samples/client/petstore/perl/t/HumanTest.t | 33 + .../petstore/perl/t/InlineObject1Test.t | 33 + .../petstore/perl/t/InlineObject2Test.t | 33 + .../petstore/perl/t/InlineObject3Test.t | 33 + .../petstore/perl/t/InlineObject4Test.t | 33 + .../petstore/perl/t/InlineObject5Test.t | 33 + .../client/petstore/perl/t/InlineObjectTest.t | 33 + .../perl/t/InlineResponseDefaultTest.t | 33 + samples/client/petstore/perl/t/PersonTest.t | 33 + .../petstore/perl/tests/06_inheritance.t | 64 + 98 files changed, 8153 insertions(+), 5047 deletions(-) create mode 100644 samples/client/petstore/perl/docs/Adult.md create mode 100644 samples/client/petstore/perl/docs/Child.md create mode 100644 samples/client/petstore/perl/docs/DefaultApi.md create mode 100644 samples/client/petstore/perl/docs/Foo.md create mode 100644 samples/client/petstore/perl/docs/Human.md create mode 100644 samples/client/petstore/perl/docs/InlineObject.md create mode 100644 samples/client/petstore/perl/docs/InlineObject1.md create mode 100644 samples/client/petstore/perl/docs/InlineObject2.md create mode 100644 samples/client/petstore/perl/docs/InlineObject3.md create mode 100644 samples/client/petstore/perl/docs/InlineObject4.md create mode 100644 samples/client/petstore/perl/docs/InlineObject5.md create mode 100644 samples/client/petstore/perl/docs/InlineResponseDefault.md create mode 100644 samples/client/petstore/perl/docs/Person.md create mode 100644 samples/client/petstore/perl/lib/WWW/OpenAPIClient/DefaultApi.pm create mode 100644 samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Adult.pm create mode 100644 samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Child.pm create mode 100644 samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Foo.pm create mode 100644 samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Human.pm create mode 100644 samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject.pm create mode 100644 samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject1.pm create mode 100644 samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject2.pm create mode 100644 samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject3.pm create mode 100644 samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject4.pm create mode 100644 samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject5.pm create mode 100644 samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineResponseDefault.pm create mode 100644 samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Person.pm create mode 100644 samples/client/petstore/perl/t/AdultTest.t create mode 100644 samples/client/petstore/perl/t/ChildTest.t create mode 100644 samples/client/petstore/perl/t/DefaultApiTest.t create mode 100644 samples/client/petstore/perl/t/FooTest.t create mode 100644 samples/client/petstore/perl/t/HumanTest.t create mode 100644 samples/client/petstore/perl/t/InlineObject1Test.t create mode 100644 samples/client/petstore/perl/t/InlineObject2Test.t create mode 100644 samples/client/petstore/perl/t/InlineObject3Test.t create mode 100644 samples/client/petstore/perl/t/InlineObject4Test.t create mode 100644 samples/client/petstore/perl/t/InlineObject5Test.t create mode 100644 samples/client/petstore/perl/t/InlineObjectTest.t create mode 100644 samples/client/petstore/perl/t/InlineResponseDefaultTest.t create mode 100644 samples/client/petstore/perl/t/PersonTest.t create mode 100644 samples/client/petstore/perl/tests/06_inheritance.t diff --git a/bin/openapi3/perl-petstore.sh b/bin/openapi3/perl-petstore.sh index f40419fb434..908328217f6 100755 --- a/bin/openapi3/perl-petstore.sh +++ b/bin/openapi3/perl-petstore.sh @@ -28,6 +28,6 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" # complex module name used for testing -ags="generate -i modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml -g perl -o samples/client/petstore/perl -DhideGenerationTimestamp=true $@" +ags="generate -t modules/openapi-generator/src/main/resources/perl -i modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml -g perl -o samples/client/petstore/perl -DhideGenerationTimestamp=true $@" java $JAVA_OPTS -jar $executable $ags diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java index 6743d7bf3eb..b8f79d3464d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java @@ -53,6 +53,9 @@ public class PerlClientCodegen extends DefaultCodegen implements CodegenConfig { public PerlClientCodegen() { super(); + // add multiple inheritance support (beta) + supportsMultipleInheritance = true; + // clear import mapping (from default generator) as perl does not use it // at the moment importMapping.clear(); diff --git a/modules/openapi-generator/src/main/resources/perl/BaseObject.mustache b/modules/openapi-generator/src/main/resources/perl/BaseObject.mustache index 1e2a16345e6..9749f29bed4 100644 --- a/modules/openapi-generator/src/main/resources/perl/BaseObject.mustache +++ b/modules/openapi-generator/src/main/resources/perl/BaseObject.mustache @@ -9,23 +9,44 @@ __PACKAGE__->mk_classdata('openapi_types' => {}); __PACKAGE__->mk_classdata('method_documentation' => {}); __PACKAGE__->mk_classdata('class_documentation' => {}); -# new object +# new plain object sub new { my ($class, %args) = @_; my $self = bless {}, $class; - - foreach my $attribute (keys %{$class->attribute_map}) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{ $args_key } ); - } + + $self->init(%args); return $self; -} +} + +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } + {{#allParents}} + + # initialize parent object {{{.}}} + $self->{{moduleName}}::Object::{{{.}}}::init(%args); + {{/allParents}} +} # return perl hash sub to_hash { - return decode_json(JSON->new->convert_blessed->encode( shift )); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + {{#allParents}} + + # call {{{.}}} to_hash and then combine hash + $_hash = { %$_hash, %$self->{{moduleName}}::Object::{{{.}}}::to_hash }; + {{/allParents}} + + return $_hash; } # used by JSON for serialization @@ -37,6 +58,12 @@ sub TO_JSON { $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + {{#allParents}} + + # combine parent ({{{.}}}) TO_JSON + $_data = { %$_data, %$self->{{moduleName}}::Object::{{{.}}}::TO_JSON }; + {{/allParents}} + return $_data; } @@ -60,6 +87,11 @@ sub from_hash { $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } + {{#allParents}} + + # call parent ({{{.}}}) from_hash + $self->{{moduleName}}::Object::{{{.}}}::from_hash($hash); + {{/allParents}} return $self; } diff --git a/modules/openapi-generator/src/main/resources/perl/object.mustache b/modules/openapi-generator/src/main/resources/perl/object.mustache index ee3a6d18008..26eb8ebd0d3 100644 --- a/modules/openapi-generator/src/main/resources/perl/object.mustache +++ b/modules/openapi-generator/src/main/resources/perl/object.mustache @@ -23,8 +23,7 @@ use DateTime; use {{moduleName}}::Object::{{.}}; {{/imports}} -use base ("Class::Accessor", "Class::Data::Inheritable"); - +use base ("Class::Accessor", "Class::Data::Inheritable"{{#allParents}}, "{{moduleName}}::Object::{{{.}}}"{{/allParents}}); # #{{description}} diff --git a/samples/client/petstore/perl/.openapi-generator/VERSION b/samples/client/petstore/perl/.openapi-generator/VERSION index 6d94c9c2e12..afa63656064 100644 --- a/samples/client/petstore/perl/.openapi-generator/VERSION +++ b/samples/client/petstore/perl/.openapi-generator/VERSION @@ -1 +1 @@ -3.3.0-SNAPSHOT \ No newline at end of file +4.0.0-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/perl/README.md b/samples/client/petstore/perl/README.md index c64a6dbefe8..a9cdaefb8be 100644 --- a/samples/client/petstore/perl/README.md +++ b/samples/client/petstore/perl/README.md @@ -234,7 +234,6 @@ To load the models: ```perl use WWW::OpenAPIClient::Object::AdditionalPropertiesClass; use WWW::OpenAPIClient::Object::Animal; -use WWW::OpenAPIClient::Object::AnimalFarm; use WWW::OpenAPIClient::Object::ApiResponse; use WWW::OpenAPIClient::Object::ArrayOfArrayOfNumberOnly; use WWW::OpenAPIClient::Object::ArrayOfNumberOnly; @@ -265,7 +264,6 @@ use WWW::OpenAPIClient::Object::OuterEnum; use WWW::OpenAPIClient::Object::Pet; use WWW::OpenAPIClient::Object::ReadOnlyFirst; use WWW::OpenAPIClient::Object::SpecialModelName; -use WWW::OpenAPIClient::Object::StringBooleanMap; use WWW::OpenAPIClient::Object::Tag; use WWW::OpenAPIClient::Object::User; @@ -289,7 +287,6 @@ use WWW::OpenAPIClient::UserApi; # load the models use WWW::OpenAPIClient::Object::AdditionalPropertiesClass; use WWW::OpenAPIClient::Object::Animal; -use WWW::OpenAPIClient::Object::AnimalFarm; use WWW::OpenAPIClient::Object::ApiResponse; use WWW::OpenAPIClient::Object::ArrayOfArrayOfNumberOnly; use WWW::OpenAPIClient::Object::ArrayOfNumberOnly; @@ -320,7 +317,6 @@ use WWW::OpenAPIClient::Object::OuterEnum; use WWW::OpenAPIClient::Object::Pet; use WWW::OpenAPIClient::Object::ReadOnlyFirst; use WWW::OpenAPIClient::Object::SpecialModelName; -use WWW::OpenAPIClient::Object::StringBooleanMap; use WWW::OpenAPIClient::Object::Tag; use WWW::OpenAPIClient::Object::User; @@ -359,6 +355,7 @@ Class | Method | HTTP request | Description *FakeApi* | [**test_client_model**](docs/FakeApi.md#test_client_model) | **PATCH** /fake | To test \"client\" model *FakeApi* | [**test_endpoint_parameters**](docs/FakeApi.md#test_endpoint_parameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 *FakeApi* | [**test_enum_parameters**](docs/FakeApi.md#test_enum_parameters) | **GET** /fake | To test enum parameters +*FakeApi* | [**test_group_parameters**](docs/FakeApi.md#test_group_parameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional) *FakeApi* | [**test_inline_additional_properties**](docs/FakeApi.md#test_inline_additional_properties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties *FakeApi* | [**test_json_form_data**](docs/FakeApi.md#test_json_form_data) | **GET** /fake/jsonFormData | test json serialization of form data *FakeClassnameTags123Api* | [**test_classname**](docs/FakeClassnameTags123Api.md#test_classname) | **PATCH** /fake_classname_test | To test class name in snake case @@ -388,7 +385,6 @@ Class | Method | HTTP request | Description # DOCUMENTATION FOR MODELS - [WWW::OpenAPIClient::Object::AdditionalPropertiesClass](docs/AdditionalPropertiesClass.md) - [WWW::OpenAPIClient::Object::Animal](docs/Animal.md) - - [WWW::OpenAPIClient::Object::AnimalFarm](docs/AnimalFarm.md) - [WWW::OpenAPIClient::Object::ApiResponse](docs/ApiResponse.md) - [WWW::OpenAPIClient::Object::ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md) - [WWW::OpenAPIClient::Object::ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md) @@ -419,7 +415,6 @@ Class | Method | HTTP request | Description - [WWW::OpenAPIClient::Object::Pet](docs/Pet.md) - [WWW::OpenAPIClient::Object::ReadOnlyFirst](docs/ReadOnlyFirst.md) - [WWW::OpenAPIClient::Object::SpecialModelName](docs/SpecialModelName.md) - - [WWW::OpenAPIClient::Object::StringBooleanMap](docs/StringBooleanMap.md) - [WWW::OpenAPIClient::Object::Tag](docs/Tag.md) - [WWW::OpenAPIClient::Object::User](docs/User.md) diff --git a/samples/client/petstore/perl/docs/Adult.md b/samples/client/petstore/perl/docs/Adult.md new file mode 100644 index 00000000000..576d0350c2c --- /dev/null +++ b/samples/client/petstore/perl/docs/Adult.md @@ -0,0 +1,18 @@ +# WWW::OpenAPIClient::Object::Adult + +## Load the model package +```perl +use WWW::OpenAPIClient::Object::Adult; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**duplicated_optional** | **int** | | [optional] +**duplicated_required** | **int** | | +**children** | [**ARRAY[Child]**](Child.md) | | [optional] +**adult_required** | **boolean** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/samples/client/petstore/perl/docs/Cat.md b/samples/client/petstore/perl/docs/Cat.md index f7bb591de24..bbf0e25a09b 100644 --- a/samples/client/petstore/perl/docs/Cat.md +++ b/samples/client/petstore/perl/docs/Cat.md @@ -8,8 +8,6 @@ use WWW::OpenAPIClient::Object::Cat; ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**class_name** | **string** | | -**color** | **string** | | [optional] [default to 'red'] **declawed** | **boolean** | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/client/petstore/perl/docs/Category.md b/samples/client/petstore/perl/docs/Category.md index 1bcd862302e..b87bf678b0d 100644 --- a/samples/client/petstore/perl/docs/Category.md +++ b/samples/client/petstore/perl/docs/Category.md @@ -9,7 +9,7 @@ use WWW::OpenAPIClient::Object::Category; Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **id** | **int** | | [optional] -**name** | **string** | | [optional] +**name** | **string** | | [default to 'default-name'] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/client/petstore/perl/docs/Child.md b/samples/client/petstore/perl/docs/Child.md new file mode 100644 index 00000000000..41f0b9603f3 --- /dev/null +++ b/samples/client/petstore/perl/docs/Child.md @@ -0,0 +1,16 @@ +# WWW::OpenAPIClient::Object::Child + +## Load the model package +```perl +use WWW::OpenAPIClient::Object::Child; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**age** | **int** | | [optional] +**first_name** | **string** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/samples/client/petstore/perl/docs/DefaultApi.md b/samples/client/petstore/perl/docs/DefaultApi.md new file mode 100644 index 00000000000..4a824e8fe43 --- /dev/null +++ b/samples/client/petstore/perl/docs/DefaultApi.md @@ -0,0 +1,54 @@ +# WWW::OpenAPIClient::DefaultApi + +## Load the API package +```perl +use WWW::OpenAPIClient::Object::DefaultApi; +``` + +All URIs are relative to *http://petstore.swagger.io:80/v2* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**foo_get**](DefaultApi.md#foo_get) | **GET** /foo | + + +# **foo_get** +> InlineResponseDefault foo_get() + + + +### Example +```perl +use Data::Dumper; +use WWW::OpenAPIClient::DefaultApi; +my $api_instance = WWW::OpenAPIClient::DefaultApi->new( +); + + +eval { + my $result = $api_instance->foo_get(); + print Dumper($result); +}; +if ($@) { + warn "Exception when calling DefaultApi->foo_get: $@\n"; +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**InlineResponseDefault**](InlineResponseDefault.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/perl/docs/Dog.md b/samples/client/petstore/perl/docs/Dog.md index 93f82b609d9..ddd9e18cac3 100644 --- a/samples/client/petstore/perl/docs/Dog.md +++ b/samples/client/petstore/perl/docs/Dog.md @@ -8,8 +8,6 @@ use WWW::OpenAPIClient::Object::Dog; ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**class_name** | **string** | | -**color** | **string** | | [optional] [default to 'red'] **breed** | **string** | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/client/petstore/perl/docs/FakeApi.md b/samples/client/petstore/perl/docs/FakeApi.md index 88f6b8336a3..e49a28bbf1e 100644 --- a/samples/client/petstore/perl/docs/FakeApi.md +++ b/samples/client/petstore/perl/docs/FakeApi.md @@ -18,6 +18,7 @@ Method | HTTP request | Description [**test_client_model**](FakeApi.md#test_client_model) | **PATCH** /fake | To test \"client\" model [**test_endpoint_parameters**](FakeApi.md#test_endpoint_parameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 [**test_enum_parameters**](FakeApi.md#test_enum_parameters) | **GET** /fake | To test enum parameters +[**test_group_parameters**](FakeApi.md#test_group_parameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional) [**test_inline_additional_properties**](FakeApi.md#test_inline_additional_properties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties [**test_json_form_data**](FakeApi.md#test_json_form_data) | **GET** /fake/jsonFormData | test json serialization of form data @@ -476,6 +477,61 @@ No authorization required [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **test_group_parameters** +> test_group_parameters(required_string_group => $required_string_group, required_boolean_group => $required_boolean_group, required_int64_group => $required_int64_group, string_group => $string_group, boolean_group => $boolean_group, int64_group => $int64_group) + +Fake endpoint to test group parameters (optional) + +Fake endpoint to test group parameters (optional) + +### Example +```perl +use Data::Dumper; +use WWW::OpenAPIClient::FakeApi; +my $api_instance = WWW::OpenAPIClient::FakeApi->new( +); + +my $required_string_group = 56; # int | Required String in group parameters +my $required_boolean_group = null; # boolean | Required Boolean in group parameters +my $required_int64_group = 789; # int | Required Integer in group parameters +my $string_group = 56; # int | String in group parameters +my $boolean_group = null; # boolean | Boolean in group parameters +my $int64_group = 789; # int | Integer in group parameters + +eval { + $api_instance->test_group_parameters(required_string_group => $required_string_group, required_boolean_group => $required_boolean_group, required_int64_group => $required_int64_group, string_group => $string_group, boolean_group => $boolean_group, int64_group => $int64_group); +}; +if ($@) { + warn "Exception when calling FakeApi->test_group_parameters: $@\n"; +} +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **required_string_group** | **int**| Required String in group parameters | + **required_boolean_group** | **boolean**| Required Boolean in group parameters | + **required_int64_group** | **int**| Required Integer in group parameters | + **string_group** | **int**| String in group parameters | [optional] + **boolean_group** | **boolean**| Boolean in group parameters | [optional] + **int64_group** | **int**| Integer in group parameters | [optional] + +### Return type + +void (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **test_inline_additional_properties** > test_inline_additional_properties(request_body => $request_body) diff --git a/samples/client/petstore/perl/docs/Foo.md b/samples/client/petstore/perl/docs/Foo.md new file mode 100644 index 00000000000..836812bd151 --- /dev/null +++ b/samples/client/petstore/perl/docs/Foo.md @@ -0,0 +1,15 @@ +# WWW::OpenAPIClient::Object::Foo + +## Load the model package +```perl +use WWW::OpenAPIClient::Object::Foo; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**bar** | **string** | | [optional] [default to 'bar'] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/samples/client/petstore/perl/docs/Human.md b/samples/client/petstore/perl/docs/Human.md new file mode 100644 index 00000000000..e1b5ddc362c --- /dev/null +++ b/samples/client/petstore/perl/docs/Human.md @@ -0,0 +1,16 @@ +# WWW::OpenAPIClient::Object::Human + +## Load the model package +```perl +use WWW::OpenAPIClient::Object::Human; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**___type** | **string** | | [optional] +**body** | **string** | | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/samples/client/petstore/perl/docs/InlineObject.md b/samples/client/petstore/perl/docs/InlineObject.md new file mode 100644 index 00000000000..126cf49b740 --- /dev/null +++ b/samples/client/petstore/perl/docs/InlineObject.md @@ -0,0 +1,16 @@ +# WWW::OpenAPIClient::Object::InlineObject + +## Load the model package +```perl +use WWW::OpenAPIClient::Object::InlineObject; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **string** | Updated name of the pet | [optional] +**status** | **string** | Updated status of the pet | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/samples/client/petstore/perl/docs/InlineObject1.md b/samples/client/petstore/perl/docs/InlineObject1.md new file mode 100644 index 00000000000..839fdba9efa --- /dev/null +++ b/samples/client/petstore/perl/docs/InlineObject1.md @@ -0,0 +1,16 @@ +# WWW::OpenAPIClient::Object::InlineObject1 + +## Load the model package +```perl +use WWW::OpenAPIClient::Object::InlineObject1; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**additional_metadata** | **string** | Additional data to pass to server | [optional] +**file** | **string** | file to upload | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/samples/client/petstore/perl/docs/InlineObject2.md b/samples/client/petstore/perl/docs/InlineObject2.md new file mode 100644 index 00000000000..4d9df027ae4 --- /dev/null +++ b/samples/client/petstore/perl/docs/InlineObject2.md @@ -0,0 +1,16 @@ +# WWW::OpenAPIClient::Object::InlineObject2 + +## Load the model package +```perl +use WWW::OpenAPIClient::Object::InlineObject2; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**enum_form_string_array** | **ARRAY[string]** | Form parameter enum test (string array) | [optional] +**enum_form_string** | **string** | Form parameter enum test (string) | [optional] [default to '-efg'] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/samples/client/petstore/perl/docs/InlineObject3.md b/samples/client/petstore/perl/docs/InlineObject3.md new file mode 100644 index 00000000000..cf84ac4a3b1 --- /dev/null +++ b/samples/client/petstore/perl/docs/InlineObject3.md @@ -0,0 +1,28 @@ +# WWW::OpenAPIClient::Object::InlineObject3 + +## Load the model package +```perl +use WWW::OpenAPIClient::Object::InlineObject3; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**integer** | **int** | None | [optional] +**int32** | **int** | None | [optional] +**int64** | **int** | None | [optional] +**number** | **double** | None | +**float** | **double** | None | [optional] +**double** | **double** | None | +**string** | **string** | None | [optional] +**pattern_without_delimiter** | **string** | None | +**byte** | **string** | None | +**binary** | **string** | None | [optional] +**date** | **DateTime** | None | [optional] +**date_time** | **DateTime** | None | [optional] +**password** | **string** | None | [optional] +**callback** | **string** | None | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/samples/client/petstore/perl/docs/InlineObject4.md b/samples/client/petstore/perl/docs/InlineObject4.md new file mode 100644 index 00000000000..d29db47bc0a --- /dev/null +++ b/samples/client/petstore/perl/docs/InlineObject4.md @@ -0,0 +1,16 @@ +# WWW::OpenAPIClient::Object::InlineObject4 + +## Load the model package +```perl +use WWW::OpenAPIClient::Object::InlineObject4; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**param** | **string** | field1 | +**param2** | **string** | field2 | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/samples/client/petstore/perl/docs/InlineObject5.md b/samples/client/petstore/perl/docs/InlineObject5.md new file mode 100644 index 00000000000..1d83caf0754 --- /dev/null +++ b/samples/client/petstore/perl/docs/InlineObject5.md @@ -0,0 +1,16 @@ +# WWW::OpenAPIClient::Object::InlineObject5 + +## Load the model package +```perl +use WWW::OpenAPIClient::Object::InlineObject5; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**additional_metadata** | **string** | Additional data to pass to server | [optional] +**required_file** | **string** | file to upload | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/samples/client/petstore/perl/docs/InlineResponseDefault.md b/samples/client/petstore/perl/docs/InlineResponseDefault.md new file mode 100644 index 00000000000..5da39c51579 --- /dev/null +++ b/samples/client/petstore/perl/docs/InlineResponseDefault.md @@ -0,0 +1,15 @@ +# WWW::OpenAPIClient::Object::InlineResponseDefault + +## Load the model package +```perl +use WWW::OpenAPIClient::Object::InlineResponseDefault; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**string** | [**Foo**](Foo.md) | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/samples/client/petstore/perl/docs/MapTest.md b/samples/client/petstore/perl/docs/MapTest.md index 822e4db49a2..9053f3e3db6 100644 --- a/samples/client/petstore/perl/docs/MapTest.md +++ b/samples/client/petstore/perl/docs/MapTest.md @@ -11,7 +11,7 @@ Name | Type | Description | Notes **map_map_of_string** | **HASH[string,HASH[string,string]]** | | [optional] **map_of_enum_string** | **HASH[string,string]** | | [optional] **direct_map** | **HASH[string,boolean]** | | [optional] -**indirect_map** | [**StringBooleanMap**](StringBooleanMap.md) | | [optional] +**indirect_map** | **HASH[string,boolean]** | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/client/petstore/perl/docs/Person.md b/samples/client/petstore/perl/docs/Person.md new file mode 100644 index 00000000000..1b888626d5a --- /dev/null +++ b/samples/client/petstore/perl/docs/Person.md @@ -0,0 +1,20 @@ +# WWW::OpenAPIClient::Object::Person + +## Load the model package +```perl +use WWW::OpenAPIClient::Object::Person; +``` + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**___type** | **string** | | [optional] +**last_name** | **string** | | [optional] +**first_name** | **string** | | [optional] +**duplicated_optional** | **string** | | [optional] +**duplicated_required** | **string** | | +**person_required** | **DateTime** | | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/samples/client/petstore/perl/docs/PetApi.md b/samples/client/petstore/perl/docs/PetApi.md index d18aca84067..5218d9282f1 100644 --- a/samples/client/petstore/perl/docs/PetApi.md +++ b/samples/client/petstore/perl/docs/PetApi.md @@ -180,7 +180,7 @@ my $api_instance = WWW::OpenAPIClient::PetApi->new( access_token => 'YOUR_ACCESS_TOKEN', ); -my $tags = [("inner_example")]; # ARRAY[string] | Tags to filter by +my $tags = [("null")]; # ARRAY[string] | Tags to filter by eval { my $result = $api_instance->find_pets_by_tags(tags => $tags); diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/AnotherFakeApi.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/AnotherFakeApi.pm index d1ac90a73b4..01fb45c5918 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/AnotherFakeApi.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/AnotherFakeApi.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -23,7 +22,7 @@ package WWW::OpenAPIClient::AnotherFakeApi; require 5.6.0; use strict; use warnings; -use utf8; +use utf8; use Exporter; use Carp qw( croak ); use Log::Any qw($log); @@ -32,16 +31,15 @@ use WWW::OpenAPIClient::ApiClient; use base "Class::Data::Inheritable"; -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); +__PACKAGE__->mk_classdata('method_documentation' => {}); sub new { my $class = shift; my $api_client; - if ( $_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::ApiClient' ) { + if ($_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::ApiClient' ) { $api_client = $_[0]; - } - else { + } else { $api_client = WWW::OpenAPIClient::ApiClient->new(@_); } @@ -49,60 +47,55 @@ sub new { } + # # call_123_test_special_tags # # To test special tags -# +# # @param Client $client client model (required) { my $params = { - 'client' => { - data_type => 'Client', - description => 'client model', - required => '1', - }, + 'client' => { + data_type => 'Client', + description => 'client model', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'call_123_test_special_tags'} = { - summary => 'To test special tags', - params => $params, + __PACKAGE__->method_documentation->{ 'call_123_test_special_tags' } = { + summary => 'To test special tags', + params => $params, returns => 'Client', - }; + }; } - # @return Client # sub call_123_test_special_tags { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'client' is set - unless ( exists $args{'client'} ) { - croak( -"Missing the required parameter 'client' when calling call_123_test_special_tags" - ); + unless (exists $args{'client'}) { + croak("Missing the required parameter 'client' when calling call_123_test_special_tags"); } # parse inputs my $_resource_path = '/another-fake/dummy'; - my $_method = 'PATCH'; - my $query_params = {}; + my $_method = 'PATCH'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header - my $_header_accept = - $self->{api_client}->select_header_accept('application/json'); + my $_header_accept = $self->{api_client}->select_header_accept('application/json'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type('application/json'); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('application/json'); my $_body_data; - # body params - if ( exists $args{'client'} ) { + if ( exists $args{'client'}) { $_body_data = $args{'client'}; } @@ -110,15 +103,13 @@ sub call_123_test_special_tags { my $auth_settings = [qw()]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { return; } - my $_response_object = - $self->{api_client}->deserialize( 'Client', $response ); + my $_response_object = $self->{api_client}->deserialize('Client', $response); return $_response_object; } diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/ApiClient.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/ApiClient.pm index 9f3d65d82ad..573fb1ca581 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/ApiClient.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/ApiClient.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -40,25 +39,22 @@ use Module::Runtime qw(use_module); use WWW::OpenAPIClient::Configuration; + sub new { my $class = shift; my $config; - if ( $_[0] - && ref $_[0] - && ref $_[0] eq 'WWW::OpenAPIClient::Configuration' ) - { + if ( $_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::Configuration' ) { $config = $_[0]; - } - else { + } else { $config = WWW::OpenAPIClient::Configuration->new(@_); } my (%args) = ( - 'ua' => LWP::UserAgent->new, + 'ua' => LWP::UserAgent->new, 'config' => $config, ); - + return bless \%args, $class; } @@ -67,17 +63,17 @@ sub new { # @param string $user_agent The user agent of the API client # sub set_user_agent { - my ( $self, $user_agent ) = @_; - $self->{http_user_agent} = $user_agent; + my ($self, $user_agent) = @_; + $self->{http_user_agent}= $user_agent; } # Set timeout # # @param integer $seconds Number of seconds before timing out [set to 0 for no timeout] -# +# sub set_timeout { - my ( $self, $seconds ) = @_; - if ( !looks_like_number($seconds) ) { + my ($self, $seconds) = @_; + if (!looks_like_number($seconds)) { croak('Timeout variable must be numeric.'); } $self->{http_timeout} = $seconds; @@ -92,86 +88,72 @@ sub set_timeout { # @return mixed sub call_api { my $self = shift; - my ( - $resource_path, $method, $query_params, $post_params, - $header_params, $body_data, $auth_settings - ) = @_; - + my ($resource_path, $method, $query_params, $post_params, $header_params, $body_data, $auth_settings) = @_; + # update parameters based on authentication settings - $self->update_params_for_auth( $header_params, $query_params, - $auth_settings ); - + $self->update_params_for_auth($header_params, $query_params, $auth_settings); + + my $_url = $self->{config}{base_url} . $resource_path; - - # build query + + # build query if (%$query_params) { - $_url = - ( $_url . '?' . eval { URI::Query->new($query_params)->stringify } ); + $_url = ($_url . '?' . eval { URI::Query->new($query_params)->stringify }); } - + + # body data - $body_data = to_json( $body_data->to_hash ) - if defined $body_data - && $body_data->can('to_hash'); # model to json string + $body_data = to_json($body_data->to_hash) if defined $body_data && $body_data->can('to_hash'); # model to json string my $_body_data = %$post_params ? $post_params : $body_data; - + # Make the HTTP request my $_request; - if ( $method eq 'POST' ) { - + if ($method eq 'POST') { # multipart - $header_params->{'Content-Type'} = - lc $header_params->{'Content-Type'} eq 'multipart/form' - ? 'form-data' - : $header_params->{'Content-Type'}; - - $_request = POST( $_url, %$header_params, Content => $_body_data ); - + $header_params->{'Content-Type'} = lc $header_params->{'Content-Type'} eq 'multipart/form' ? + 'form-data' : $header_params->{'Content-Type'}; + + $_request = POST($_url, %$header_params, Content => $_body_data); + } - elsif ( $method eq 'PUT' ) { - + elsif ($method eq 'PUT') { # multipart - $header_params->{'Content-Type'} = - lc $header_params->{'Content-Type'} eq 'multipart/form' - ? 'form-data' - : $header_params->{'Content-Type'}; - - $_request = PUT( $_url, %$header_params, Content => $_body_data ); - + $header_params->{'Content-Type'} = lc $header_params->{'Content-Type'} eq 'multipart/form' ? + 'form-data' : $header_params->{'Content-Type'}; + + $_request = PUT($_url, %$header_params, Content => $_body_data); + } - elsif ( $method eq 'GET' ) { + elsif ($method eq 'GET') { my $headers = HTTP::Headers->new(%$header_params); - $_request = GET( $_url, %$header_params ); + $_request = GET($_url, %$header_params); } - elsif ( $method eq 'HEAD' ) { + elsif ($method eq 'HEAD') { my $headers = HTTP::Headers->new(%$header_params); - $_request = HEAD( $_url, %$header_params ); + $_request = HEAD($_url,%$header_params); } - elsif ( $method eq 'DELETE' ) { #TODO support form data + elsif ($method eq 'DELETE') { #TODO support form data my $headers = HTTP::Headers->new(%$header_params); - $_request = DELETE( $_url, %$headers ); + $_request = DELETE($_url, %$headers); } - elsif ( $method eq 'PATCH' ) { #TODO + elsif ($method eq 'PATCH') { #TODO } else { } - - $self->{ua} - ->timeout( $self->{http_timeout} || $self->{config}{http_timeout} ); - $self->{ua} - ->agent( $self->{http_user_agent} || $self->{config}{http_user_agent} ); - - $log->debugf( "REQUEST: %s", $_request->as_string ); + + $self->{ua}->timeout($self->{http_timeout} || $self->{config}{http_timeout}); + $self->{ua}->agent($self->{http_user_agent} || $self->{config}{http_user_agent}); + + $log->debugf("REQUEST: %s", $_request->as_string); my $_response = $self->{ua}->request($_request); - $log->debugf( "RESPONSE: %s", $_response->as_string ); - - unless ( $_response->is_success ) { - croak( sprintf "API Exception(%s): %s\n%s", - $_response->code, $_response->message, $_response->content ); + $log->debugf("RESPONSE: %s", $_response->as_string); + + unless ($_response->is_success) { + croak(sprintf "API Exception(%s): %s\n%s", $_response->code, $_response->message, $_response->content); } - + return $_response->content; - + } # Take value and turn it into a string suitable for inclusion in @@ -179,10 +161,11 @@ sub call_api { # @param string $value a string which will be part of the path # @return string the serialized object sub to_path_value { - my ( $self, $value ) = @_; - return uri_escape( $self->to_string($value) ); + my ($self, $value) = @_; + return uri_escape($self->to_string($value)); } + # Take value and turn it into a string suitable for inclusion in # the query, by imploding comma-separated if it's an object. # If it's a string, pass through unchanged. It will be url-encoded @@ -190,22 +173,22 @@ sub to_path_value { # @param object $object an object to be serialized to a string # @return string the serialized object sub to_query_value { - my ( $self, $object ) = @_; - if ( ref($object) eq 'ARRAY' ) { - return join( ',', @$object ); - } - else { - return $self->to_string($object); - } + my ($self, $object) = @_; + if (ref($object) eq 'ARRAY') { + return join(',', @$object); + } else { + return $self->to_string($object); + } } + # Take value and turn it into a string suitable for inclusion in # the header. If it's a string, pass through unchanged # If it's a datetime object, format it in ISO8601 # @param string $value a string which will be part of the header # @return string the header string sub to_header_value { - my ( $self, $value ) = @_; + my ($self, $value) = @_; return $self->to_string($value); } @@ -215,7 +198,7 @@ sub to_header_value { # @param string $value the value of the form parameter # @return string the form string sub to_form_value { - my ( $self, $value ) = @_; + my ($self, $value) = @_; return $self->to_string($value); } @@ -225,8 +208,8 @@ sub to_form_value { # @param string $value the value of the parameter # @return string the header string sub to_string { - my ( $self, $value ) = @_; - if ( ref($value) eq "DateTime" ) { # datetime in ISO8601 format + my ($self, $value) = @_; + if (ref($value) eq "DateTime") { # datetime in ISO8601 format return $value->datetime(); } else { @@ -235,216 +218,197 @@ sub to_string { } # Deserialize a JSON string into an object -# +# # @param string $class class name is passed as a string # @param string $data data of the body # @return object an instance of $class -sub deserialize { - my ( $self, $class, $data ) = @_; - $log->debugf( "deserializing %s for %s", $data, $class ); - - if ( not defined $data ) { +sub deserialize +{ + my ($self, $class, $data) = @_; + $log->debugf("deserializing %s for %s", $data, $class); + + if (not defined $data) { return undef; - } - elsif ( ( substr( $class, 0, 5 ) ) eq 'HASH[' ) { #hash - if ( $class =~ /^HASH\[(.*),(.*)\]$/ ) { - my ( $key_type, $type ) = ( $1, $2 ); + } elsif ( (substr($class, 0, 5)) eq 'HASH[') { #hash + if ($class =~ /^HASH\[(.*),(.*)\]$/) { + my ($key_type, $type) = ($1, $2); my %hash; my $decoded_data = decode_json $data; - foreach my $key ( keys %$decoded_data ) { - if ( ref $decoded_data->{$key} eq 'HASH' ) { - $hash{$key} = $self->deserialize( $type, - encode_json $decoded_data->{$key} ); - } - else { - $hash{$key} = - $self->deserialize( $type, $decoded_data->{$key} ); + foreach my $key (keys %$decoded_data) { + if (ref $decoded_data->{$key} eq 'HASH') { + $hash{$key} = $self->deserialize($type, encode_json $decoded_data->{$key}); + } else { + $hash{$key} = $self->deserialize($type, $decoded_data->{$key}); } } return \%hash; + } else { + #TODO log error } - else { - #TODO log error - } - - } - elsif ( ( substr( $class, 0, 6 ) ) eq 'ARRAY[' ) { # array of data - return $data if $data eq '[]'; # return if empty array - - my $_sub_class = substr( $class, 6, -1 ); + + } elsif ( (substr($class, 0, 6)) eq 'ARRAY[' ) { # array of data + return $data if $data eq '[]'; # return if empty array + + my $_sub_class = substr($class, 6, -1); my $_json_data = decode_json $data; - my @_values = (); + my @_values = (); foreach my $_value (@$_json_data) { - if ( ref $_value eq 'ARRAY' ) { - push @_values, - $self->deserialize( $_sub_class, encode_json $_value); - } - else { - push @_values, $self->deserialize( $_sub_class, $_value ); + if (ref $_value eq 'ARRAY') { + push @_values, $self->deserialize($_sub_class, encode_json $_value); + } else { + push @_values, $self->deserialize($_sub_class, $_value); } } return \@_values; - } - elsif ( $class eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep /^$class$/, ( 'string', 'int', 'float', 'bool', 'object' ) ) { + } elsif ($class eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif (grep /^$class$/, ('string', 'int', 'float', 'bool', 'object')) { return $data; - } - else { # model + } else { # model my $_instance = use_module("WWW::OpenAPIClient::Object::$class")->new; - if ( ref $data eq "HASH" ) { + if (ref $data eq "HASH") { return $_instance->from_hash($data); - } - else { # string, need to json decode first - return $_instance->from_hash( decode_json $data); + } else { # string, need to json decode first + return $_instance->from_hash(decode_json $data); } } - + } # return 'Accept' based on an array of accept provided # @param [Array] header_accept_array Array fo 'Accept' # @return String Accept (e.g. application/json) -sub select_header_accept { - my ( $self, @header ) = @_; - - if ( @header == 0 || ( @header == 1 && $header[0] eq '' ) ) { +sub select_header_accept +{ + my ($self, @header) = @_; + + if (@header == 0 || (@header == 1 && $header[0] eq '')) { return undef; - } - elsif ( grep( /^application\/json$/i, @header ) ) { + } elsif (grep(/^application\/json$/i, @header)) { return 'application/json'; + } else { + return join(',', @header); } - else { - return join( ',', @header ); - } - + } # return the content type based on an array of content-type provided # @param [Array] content_type_array Array fo content-type # @return String Content-Type (e.g. application/json) -sub select_header_content_type { - my ( $self, @header ) = @_; - - if ( @header == 0 || ( @header == 1 && $header[0] eq '' ) ) { - return 'application/json'; # default to application/json - } - elsif ( grep( /^application\/json$/i, @header ) ) { +sub select_header_content_type +{ + my ($self, @header) = @_; + + if (@header == 0 || (@header == 1 && $header[0] eq '')) { + return 'application/json'; # default to application/json + } elsif (grep(/^application\/json$/i, @header)) { return 'application/json'; + } else { + return join(',', @header); } - else { - return join( ',', @header ); - } - + } # Get API key (with prefix if set) # @param string key name # @return string API key with the prefix -sub get_api_key_with_prefix { - my ( $self, $key_name ) = @_; +sub get_api_key_with_prefix +{ + my ($self, $key_name) = @_; - my $api_key = $self->{config}{api_key}{$key_name}; - - return unless $api_key; - - my $prefix = $self->{config}{api_key_prefix}{$key_name}; - return $prefix ? "$prefix $api_key" : $api_key; -} + my $api_key = $self->{config}{api_key}{$key_name}; + + return unless $api_key; + + my $prefix = $self->{config}{api_key_prefix}{$key_name}; + return $prefix ? "$prefix $api_key" : $api_key; +} # update header and query param based on authentication setting -# +# # @param array $headerParams header parameters (by ref) # @param array $queryParams query parameters (by ref) # @param array $authSettings array of authentication scheme (e.g ['api_key']) sub update_params_for_auth { - my ( $self, $header_params, $query_params, $auth_settings ) = @_; - - return $self->_global_auth_setup( $header_params, $query_params ) - unless $auth_settings && @$auth_settings; - + my ($self, $header_params, $query_params, $auth_settings) = @_; + + return $self->_global_auth_setup($header_params, $query_params) + unless $auth_settings && @$auth_settings; + # one endpoint can have more than 1 auth settings foreach my $auth (@$auth_settings) { - # determine which one to use - if ( !defined($auth) ) { - + if (!defined($auth)) { # TODO show warning about auth setting not defined } - elsif ( $auth eq 'api_key' ) { - + elsif ($auth eq 'api_key') { + my $api_key = $self->get_api_key_with_prefix('api_key'); if ($api_key) { $header_params->{'api_key'} = $api_key; } } - elsif ( $auth eq 'api_key_query' ) { - +elsif ($auth eq 'api_key_query') { + my $api_key = $self->get_api_key_with_prefix('api_key_query'); if ($api_key) { $query_params->{'api_key_query'} = $api_key; } } - elsif ( $auth eq 'http_basic_test' ) { - - if ( $self->{config}{username} || $self->{config}{password} ) { - $header_params->{'Authorization'} = - 'Basic ' - . encode_base64( $self->{config}{username} . ":" - . $self->{config}{password} ); +elsif ($auth eq 'http_basic_test') { + + if ($self->{config}{username} || $self->{config}{password}) { + $header_params->{'Authorization'} = 'Basic ' . encode_base64($self->{config}{username} . ":" . $self->{config}{password}); } } - elsif ( $auth eq 'petstore_auth' ) { - - if ( $self->{config}{access_token} ) { - $header_params->{'Authorization'} = - 'Bearer ' . $self->{config}{access_token}; +elsif ($auth eq 'petstore_auth') { + + if ($self->{config}{access_token}) { + $header_params->{'Authorization'} = 'Bearer ' . $self->{config}{access_token}; } } else { - # TODO show warning about security definition not found + # TODO show warning about security definition not found } } } -# The endpoint API class has not found any settings for auth. This may be deliberate, -# in which case update_params_for_auth() will be a no-op. But it may also be that the -# OpenAPI Spec does not describe the intended authorization. So we check in the config for any -# auth tokens and if we find any, we use them for all endpoints; +# The endpoint API class has not found any settings for auth. This may be deliberate, +# in which case update_params_for_auth() will be a no-op. But it may also be that the +# OpenAPI Spec does not describe the intended authorization. So we check in the config for any +# auth tokens and if we find any, we use them for all endpoints; sub _global_auth_setup { - my ( $self, $header_params, $query_params ) = @_; - - my $tokens = $self->{config}->get_tokens; - return unless keys %$tokens; - - # basic - if ( my $uname = delete $tokens->{username} ) { - my $pword = delete $tokens->{password}; - $header_params->{'Authorization'} = - 'Basic ' . encode_base64( $uname . ":" . $pword ); - } - - # oauth - if ( my $access_token = delete $tokens->{access_token} ) { - $header_params->{'Authorization'} = 'Bearer ' . $access_token; - } - - # other keys - foreach my $token_name ( keys %$tokens ) { - my $in = $tokens->{$token_name}->{in}; - my $token = $self->get_api_key_with_prefix($token_name); - if ( $in eq 'head' ) { - $header_params->{$token_name} = $token; - } - elsif ( $in eq 'query' ) { - $query_params->{$token_name} = $token; - } - else { - die -"Don't know where to put token '$token_name' ('$in' is not 'head' or 'query')"; - } - } + my ($self, $header_params, $query_params) = @_; + + my $tokens = $self->{config}->get_tokens; + return unless keys %$tokens; + + # basic + if (my $uname = delete $tokens->{username}) { + my $pword = delete $tokens->{password}; + $header_params->{'Authorization'} = 'Basic '.encode_base64($uname.":".$pword); + } + + # oauth + if (my $access_token = delete $tokens->{access_token}) { + $header_params->{'Authorization'} = 'Bearer ' . $access_token; + } + + # other keys + foreach my $token_name (keys %$tokens) { + my $in = $tokens->{$token_name}->{in}; + my $token = $self->get_api_key_with_prefix($token_name); + if ($in eq 'head') { + $header_params->{$token_name} = $token; + } + elsif ($in eq 'query') { + $query_params->{$token_name} = $token; + } + else { + die "Don't know where to put token '$token_name' ('$in' is not 'head' or 'query')"; + } + } } + 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/ApiFactory.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/ApiFactory.pm index 68583ecd0c5..e9fa1328dc9 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/ApiFactory.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/ApiFactory.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -59,8 +58,9 @@ use WWW::OpenAPIClient::ApiClient; =cut # Load all the API classes and construct a lookup table at startup time -my %_apis = map { $_ =~ /^WWW::OpenAPIClient::(.*)$/; $1 => $_ } - grep { $_ =~ /Api$/ } usesub 'WWW::OpenAPIClient'; +my %_apis = map { $_ =~ /^WWW::OpenAPIClient::(.*)$/; $1 => $_ } + grep {$_ =~ /Api$/} + usesub 'WWW::OpenAPIClient'; =head1 new($api_client) @@ -78,10 +78,9 @@ sub new { my ($class) = shift; my $api_client; - if ( $_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::ApiClient' ) { + if ($_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::ApiClient' ) { $api_client = $_[0]; - } - else { + } else { $api_client = WWW::OpenAPIClient::ApiClient->new(@_); } bless { api_client => $api_client }, $class; @@ -98,10 +97,10 @@ sub new { =cut sub get_api { - my ( $self, $which ) = @_; - croak "API not specified" unless $which; - my $api_class = $_apis{"${which}Api"} || croak "No known API for '$which'"; - return $api_class->new( $self->api_client ); + my ($self, $which) = @_; + croak "API not specified" unless $which; + my $api_class = $_apis{"${which}Api"} || croak "No known API for '$which'"; + return $api_class->new($self->api_client); } =head1 api_client() @@ -115,16 +114,15 @@ sub api_client { $_[0]->{api_client} } =head1 apis_available() =cut -sub apis_available { - return map { $_ =~ s/Api$//; $_ } sort keys %_apis; -} +sub apis_available { return map { $_ =~ s/Api$//; $_ } sort keys %_apis } =head1 classname_for() =cut sub classname_for { - my ( $self, $api_name ) = @_; - return $_apis{"${api_name}Api"}; + my ($self, $api_name) = @_; + return $_apis{"${api_name}Api"}; } + 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Configuration.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Configuration.pm index acd0f34f705..678f097cbac 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Configuration.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Configuration.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -92,81 +91,80 @@ default: http://petstore.swagger.io:80/v2 =cut sub new { - my ( $self, %p ) = ( shift, @_ ); + my ($self, %p) = (shift,@_); - # class/static variables - $p{http_timeout} //= 180; - $p{http_user_agent} //= 'OpenAPI-Generator/1.0.0/perl'; + # class/static variables + $p{http_timeout} //= 180; + $p{http_user_agent} //= 'OpenAPI-Generator/1.0.0/perl'; - # authentication setting - $p{api_key} //= {}; - $p{api_key_prefix} //= {}; - $p{api_key_in} //= {}; + # authentication setting + $p{api_key} //= {}; + $p{api_key_prefix} //= {}; + $p{api_key_in} //= {}; - # username and password for HTTP basic authentication - $p{username} //= ''; - $p{password} //= ''; + # username and password for HTTP basic authentication + $p{username} //= ''; + $p{password} //= ''; - # access token for OAuth - $p{access_token} //= ''; + # access token for OAuth + $p{access_token} //= ''; - # base_url - $p{base_url} //= 'http://petstore.swagger.io:80/v2'; + # base_url + $p{base_url} //= 'http://petstore.swagger.io:80/v2'; - return bless \%p => $self; + return bless \%p => $self; } + sub get_tokens { - my $self = shift; + my $self = shift; + + my $tokens = {}; + $tokens->{username} = $self->{username} if $self->{username}; + $tokens->{password} = $self->{password} if $self->{password}; + $tokens->{access_token} = $self->{access_token} if $self->{access_token}; + + foreach my $token_name (keys %{ $self->{api_key} }) { + $tokens->{$token_name}->{token} = $self->{api_key}{$token_name}; + $tokens->{$token_name}->{prefix} = $self->{api_key_prefix}{$token_name}; + $tokens->{$token_name}->{in} = $self->{api_key_in}{$token_name}; + } - my $tokens = {}; - $tokens->{username} = $self->{username} if $self->{username}; - $tokens->{password} = $self->{password} if $self->{password}; - $tokens->{access_token} = $self->{access_token} if $self->{access_token}; - - foreach my $token_name ( keys %{ $self->{api_key} } ) { - $tokens->{$token_name}->{token} = $self->{api_key}{$token_name}; - $tokens->{$token_name}->{prefix} = $self->{api_key_prefix}{$token_name}; - $tokens->{$token_name}->{in} = $self->{api_key_in}{$token_name}; - } - - return $tokens; + return $tokens; } sub clear_tokens { - my $self = shift; - my %tokens = %{ $self->get_tokens }; # copy + my $self = shift; + my %tokens = %{$self->get_tokens}; # copy + + $self->{username} = ''; + $self->{password} = ''; + $self->{access_token} = ''; - $self->{username} = ''; - $self->{password} = ''; - $self->{access_token} = ''; - - $self->{api_key} = {}; - $self->{api_key_prefix} = {}; - $self->{api_key_in} = {}; - - return \%tokens; + $self->{api_key} = {}; + $self->{api_key_prefix} = {}; + $self->{api_key_in} = {}; + + return \%tokens; } sub accept_tokens { - my ( $self, $tokens ) = @_; - - foreach my $known_name (qw(username password access_token)) { - next unless $tokens->{$known_name}; - $self->{$known_name} = delete $tokens->{$known_name}; - } - - foreach my $token_name ( keys %$tokens ) { - $self->{api_key}{$token_name} = $tokens->{$token_name}{token}; - if ( $tokens->{$token_name}{prefix} ) { - $self->{api_key_prefix}{$token_name} = - $tokens->{$token_name}{prefix}; - } - my $in = $tokens->{$token_name}->{in} || 'head'; - croak "Tokens can only go in 'head' or 'query' (not in '$in')" - unless $in =~ /^(?:head|query)$/; - $self->{api_key_in}{$token_name} = $in; - } -} + my ($self, $tokens) = @_; + + foreach my $known_name (qw(username password access_token)) { + next unless $tokens->{$known_name}; + $self->{$known_name} = delete $tokens->{$known_name}; + } + + foreach my $token_name (keys %$tokens) { + $self->{api_key}{$token_name} = $tokens->{$token_name}{token}; + if ($tokens->{$token_name}{prefix}) { + $self->{api_key_prefix}{$token_name} = $tokens->{$token_name}{prefix}; + } + my $in = $tokens->{$token_name}->{in} || 'head'; + croak "Tokens can only go in 'head' or 'query' (not in '$in')" unless $in =~ /^(?:head|query)$/; + $self->{api_key_in}{$token_name} = $in; + } +} 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/DefaultApi.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/DefaultApi.pm new file mode 100644 index 00000000000..79a3811c1a1 --- /dev/null +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/DefaultApi.pm @@ -0,0 +1,100 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +package WWW::OpenAPIClient::DefaultApi; + +require 5.6.0; +use strict; +use warnings; +use utf8; +use Exporter; +use Carp qw( croak ); +use Log::Any qw($log); + +use WWW::OpenAPIClient::ApiClient; + +use base "Class::Data::Inheritable"; + +__PACKAGE__->mk_classdata('method_documentation' => {}); + +sub new { + my $class = shift; + my $api_client; + + if ($_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::ApiClient' ) { + $api_client = $_[0]; + } else { + $api_client = WWW::OpenAPIClient::ApiClient->new(@_); + } + + bless { api_client => $api_client }, $class; + +} + + +# +# foo_get +# +# +# +{ + my $params = { + }; + __PACKAGE__->method_documentation->{ 'foo_get' } = { + summary => '', + params => $params, + returns => 'InlineResponseDefault', + }; +} +# @return InlineResponseDefault +# +sub foo_get { + my ($self, %args) = @_; + + # parse inputs + my $_resource_path = '/foo'; + + my $_method = 'GET'; + my $query_params = {}; + my $header_params = {}; + my $form_params = {}; + + # 'Accept' and 'Content-Type' header + my $_header_accept = $self->{api_client}->select_header_accept('application/json'); + if ($_header_accept) { + $header_params->{'Accept'} = $_header_accept; + } + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); + + my $_body_data; + # authentication setting, if any + my $auth_settings = [qw()]; + + # make the API Call + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { + return; + } + my $_response_object = $self->{api_client}->deserialize('InlineResponseDefault', $response); + return $_response_object; +} + +1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/FakeApi.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/FakeApi.pm index c7a953b2ec1..edfa47ec72b 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/FakeApi.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/FakeApi.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -23,7 +22,7 @@ package WWW::OpenAPIClient::FakeApi; require 5.6.0; use strict; use warnings; -use utf8; +use utf8; use Exporter; use Carp qw( croak ); use Log::Any qw($log); @@ -32,16 +31,15 @@ use WWW::OpenAPIClient::ApiClient; use base "Class::Data::Inheritable"; -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); +__PACKAGE__->mk_classdata('method_documentation' => {}); sub new { my $class = shift; my $api_client; - if ( $_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::ApiClient' ) { + if ($_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::ApiClient' ) { $api_client = $_[0]; - } - else { + } else { $api_client = WWW::OpenAPIClient::ApiClient->new(@_); } @@ -49,52 +47,50 @@ sub new { } + # # fake_outer_boolean_serialize # -# -# +# +# # @param boolean $body Input boolean as post body (optional) { my $params = { - 'body' => { - data_type => 'boolean', - description => 'Input boolean as post body', - required => '0', - }, + 'body' => { + data_type => 'boolean', + description => 'Input boolean as post body', + required => '0', + }, }; - __PACKAGE__->method_documentation->{'fake_outer_boolean_serialize'} = { - summary => '', - params => $params, + __PACKAGE__->method_documentation->{ 'fake_outer_boolean_serialize' } = { + summary => '', + params => $params, returns => 'boolean', - }; + }; } - # @return boolean # sub fake_outer_boolean_serialize { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # parse inputs my $_resource_path = '/fake/outer/boolean'; - my $_method = 'POST'; - my $query_params = {}; + my $_method = 'POST'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept('*/*'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); my $_body_data; - # body params - if ( exists $args{'body'} ) { + if ( exists $args{'body'}) { $_body_data = $args{'body'}; } @@ -102,64 +98,59 @@ sub fake_outer_boolean_serialize { my $auth_settings = [qw()]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { return; } - my $_response_object = - $self->{api_client}->deserialize( 'boolean', $response ); + my $_response_object = $self->{api_client}->deserialize('boolean', $response); return $_response_object; } # # fake_outer_composite_serialize # -# -# +# +# # @param OuterComposite $outer_composite Input composite as post body (optional) { my $params = { - 'outer_composite' => { - data_type => 'OuterComposite', - description => 'Input composite as post body', - required => '0', - }, + 'outer_composite' => { + data_type => 'OuterComposite', + description => 'Input composite as post body', + required => '0', + }, }; - __PACKAGE__->method_documentation->{'fake_outer_composite_serialize'} = { - summary => '', - params => $params, + __PACKAGE__->method_documentation->{ 'fake_outer_composite_serialize' } = { + summary => '', + params => $params, returns => 'OuterComposite', - }; + }; } - # @return OuterComposite # sub fake_outer_composite_serialize { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # parse inputs my $_resource_path = '/fake/outer/composite'; - my $_method = 'POST'; - my $query_params = {}; + my $_method = 'POST'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept('*/*'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); my $_body_data; - # body params - if ( exists $args{'outer_composite'} ) { + if ( exists $args{'outer_composite'}) { $_body_data = $args{'outer_composite'}; } @@ -167,64 +158,59 @@ sub fake_outer_composite_serialize { my $auth_settings = [qw()]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { return; } - my $_response_object = - $self->{api_client}->deserialize( 'OuterComposite', $response ); + my $_response_object = $self->{api_client}->deserialize('OuterComposite', $response); return $_response_object; } # # fake_outer_number_serialize # -# -# +# +# # @param double $body Input number as post body (optional) { my $params = { - 'body' => { - data_type => 'double', - description => 'Input number as post body', - required => '0', - }, + 'body' => { + data_type => 'double', + description => 'Input number as post body', + required => '0', + }, }; - __PACKAGE__->method_documentation->{'fake_outer_number_serialize'} = { - summary => '', - params => $params, + __PACKAGE__->method_documentation->{ 'fake_outer_number_serialize' } = { + summary => '', + params => $params, returns => 'double', - }; + }; } - # @return double # sub fake_outer_number_serialize { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # parse inputs my $_resource_path = '/fake/outer/number'; - my $_method = 'POST'; - my $query_params = {}; + my $_method = 'POST'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept('*/*'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); my $_body_data; - # body params - if ( exists $args{'body'} ) { + if ( exists $args{'body'}) { $_body_data = $args{'body'}; } @@ -232,64 +218,59 @@ sub fake_outer_number_serialize { my $auth_settings = [qw()]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { return; } - my $_response_object = - $self->{api_client}->deserialize( 'double', $response ); + my $_response_object = $self->{api_client}->deserialize('double', $response); return $_response_object; } # # fake_outer_string_serialize # -# -# +# +# # @param string $body Input string as post body (optional) { my $params = { - 'body' => { - data_type => 'string', - description => 'Input string as post body', - required => '0', - }, + 'body' => { + data_type => 'string', + description => 'Input string as post body', + required => '0', + }, }; - __PACKAGE__->method_documentation->{'fake_outer_string_serialize'} = { - summary => '', - params => $params, + __PACKAGE__->method_documentation->{ 'fake_outer_string_serialize' } = { + summary => '', + params => $params, returns => 'string', - }; + }; } - # @return string # sub fake_outer_string_serialize { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # parse inputs my $_resource_path = '/fake/outer/string'; - my $_method = 'POST'; - my $query_params = {}; + my $_method = 'POST'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept('*/*'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); my $_body_data; - # body params - if ( exists $args{'body'} ) { + if ( exists $args{'body'}) { $_body_data = $args{'body'}; } @@ -297,71 +278,64 @@ sub fake_outer_string_serialize { my $auth_settings = [qw()]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { return; } - my $_response_object = - $self->{api_client}->deserialize( 'string', $response ); + my $_response_object = $self->{api_client}->deserialize('string', $response); return $_response_object; } # # test_body_with_file_schema # -# -# +# +# # @param FileSchemaTestClass $file_schema_test_class (required) { my $params = { - 'file_schema_test_class' => { - data_type => 'FileSchemaTestClass', - description => '', - required => '1', - }, + 'file_schema_test_class' => { + data_type => 'FileSchemaTestClass', + description => '', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'test_body_with_file_schema'} = { - summary => '', - params => $params, + __PACKAGE__->method_documentation->{ 'test_body_with_file_schema' } = { + summary => '', + params => $params, returns => undef, - }; + }; } - # @return void # sub test_body_with_file_schema { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'file_schema_test_class' is set - unless ( exists $args{'file_schema_test_class'} ) { - croak( -"Missing the required parameter 'file_schema_test_class' when calling test_body_with_file_schema" - ); + unless (exists $args{'file_schema_test_class'}) { + croak("Missing the required parameter 'file_schema_test_class' when calling test_body_with_file_schema"); } # parse inputs my $_resource_path = '/fake/body-with-file-schema'; - my $_method = 'PUT'; - my $query_params = {}; + my $_method = 'PUT'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type('application/json'); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('application/json'); my $_body_data; - # body params - if ( exists $args{'file_schema_test_class'} ) { + if ( exists $args{'file_schema_test_class'}) { $_body_data = $args{'file_schema_test_class'}; } @@ -369,85 +343,76 @@ sub test_body_with_file_schema { my $auth_settings = [qw()]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } # # test_body_with_query_params # -# -# +# +# # @param string $query (required) # @param User $user (required) { my $params = { - 'query' => { - data_type => 'string', - description => '', - required => '1', - }, - 'user' => { - data_type => 'User', - description => '', - required => '1', - }, + 'query' => { + data_type => 'string', + description => '', + required => '1', + }, + 'user' => { + data_type => 'User', + description => '', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'test_body_with_query_params'} = { - summary => '', - params => $params, + __PACKAGE__->method_documentation->{ 'test_body_with_query_params' } = { + summary => '', + params => $params, returns => undef, - }; + }; } - # @return void # sub test_body_with_query_params { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'query' is set - unless ( exists $args{'query'} ) { - croak( -"Missing the required parameter 'query' when calling test_body_with_query_params" - ); + unless (exists $args{'query'}) { + croak("Missing the required parameter 'query' when calling test_body_with_query_params"); } # verify the required parameter 'user' is set - unless ( exists $args{'user'} ) { - croak( -"Missing the required parameter 'user' when calling test_body_with_query_params" - ); + unless (exists $args{'user'}) { + croak("Missing the required parameter 'user' when calling test_body_with_query_params"); } # parse inputs my $_resource_path = '/fake/body-with-query-params'; - my $_method = 'PUT'; - my $query_params = {}; + my $_method = 'PUT'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type('application/json'); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('application/json'); # query params - if ( exists $args{'query'} ) { - $query_params->{'query'} = - $self->{api_client}->to_query_value( $args{'query'} ); + if ( exists $args{'query'}) { + $query_params->{'query'} = $self->{api_client}->to_query_value($args{'query'}); } my $_body_data; - # body params - if ( exists $args{'user'} ) { + if ( exists $args{'user'}) { $_body_data = $args{'user'}; } @@ -455,10 +420,9 @@ sub test_body_with_query_params { my $auth_settings = [qw()]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } @@ -466,56 +430,50 @@ sub test_body_with_query_params { # test_client_model # # To test \"client\" model -# +# # @param Client $client client model (required) { my $params = { - 'client' => { - data_type => 'Client', - description => 'client model', - required => '1', - }, + 'client' => { + data_type => 'Client', + description => 'client model', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'test_client_model'} = { - summary => 'To test \"client\" model', - params => $params, + __PACKAGE__->method_documentation->{ 'test_client_model' } = { + summary => 'To test \"client\" model', + params => $params, returns => 'Client', - }; + }; } - # @return Client # sub test_client_model { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'client' is set - unless ( exists $args{'client'} ) { - croak( -"Missing the required parameter 'client' when calling test_client_model" - ); + unless (exists $args{'client'}) { + croak("Missing the required parameter 'client' when calling test_client_model"); } # parse inputs my $_resource_path = '/fake'; - my $_method = 'PATCH'; - my $query_params = {}; + my $_method = 'PATCH'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header - my $_header_accept = - $self->{api_client}->select_header_accept('application/json'); + my $_header_accept = $self->{api_client}->select_header_accept('application/json'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type('application/json'); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('application/json'); my $_body_data; - # body params - if ( exists $args{'client'} ) { + if ( exists $args{'client'}) { $_body_data = $args{'client'}; } @@ -523,23 +481,21 @@ sub test_client_model { my $auth_settings = [qw()]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { return; } - my $_response_object = - $self->{api_client}->deserialize( 'Client', $response ); + my $_response_object = $self->{api_client}->deserialize('Client', $response); return $_response_object; } # # test_endpoint_parameters # -# Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 -# +# Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 +# # @param double $number None (required) # @param double $double None (required) # @param string $pattern_without_delimiter None (required) @@ -556,228 +512,202 @@ sub test_client_model { # @param string $callback None (optional) { my $params = { - 'number' => { - data_type => 'double', - description => 'None', - required => '1', - }, - 'double' => { - data_type => 'double', - description => 'None', - required => '1', - }, - 'pattern_without_delimiter' => { - data_type => 'string', - description => 'None', - required => '1', - }, - 'byte' => { - data_type => 'string', - description => 'None', - required => '1', - }, - 'integer' => { - data_type => 'int', - description => 'None', - required => '0', - }, - 'int32' => { - data_type => 'int', - description => 'None', - required => '0', - }, - 'int64' => { - data_type => 'int', - description => 'None', - required => '0', - }, - 'float' => { - data_type => 'double', - description => 'None', - required => '0', - }, - 'string' => { - data_type => 'string', - description => 'None', - required => '0', - }, - 'binary' => { - data_type => 'string', - description => 'None', - required => '0', - }, - 'date' => { - data_type => 'DateTime', - description => 'None', - required => '0', - }, - 'date_time' => { - data_type => 'DateTime', - description => 'None', - required => '0', - }, - 'password' => { - data_type => 'string', - description => 'None', - required => '0', - }, - 'callback' => { - data_type => 'string', - description => 'None', - required => '0', - }, + 'number' => { + data_type => 'double', + description => 'None', + required => '1', + }, + 'double' => { + data_type => 'double', + description => 'None', + required => '1', + }, + 'pattern_without_delimiter' => { + data_type => 'string', + description => 'None', + required => '1', + }, + 'byte' => { + data_type => 'string', + description => 'None', + required => '1', + }, + 'integer' => { + data_type => 'int', + description => 'None', + required => '0', + }, + 'int32' => { + data_type => 'int', + description => 'None', + required => '0', + }, + 'int64' => { + data_type => 'int', + description => 'None', + required => '0', + }, + 'float' => { + data_type => 'double', + description => 'None', + required => '0', + }, + 'string' => { + data_type => 'string', + description => 'None', + required => '0', + }, + 'binary' => { + data_type => 'string', + description => 'None', + required => '0', + }, + 'date' => { + data_type => 'DateTime', + description => 'None', + required => '0', + }, + 'date_time' => { + data_type => 'DateTime', + description => 'None', + required => '0', + }, + 'password' => { + data_type => 'string', + description => 'None', + required => '0', + }, + 'callback' => { + data_type => 'string', + description => 'None', + required => '0', + }, }; - __PACKAGE__->method_documentation->{'test_endpoint_parameters'} = { - summary => -'Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 ', - params => $params, + __PACKAGE__->method_documentation->{ 'test_endpoint_parameters' } = { + summary => 'Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 ', + params => $params, returns => undef, - }; + }; } - # @return void # sub test_endpoint_parameters { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'number' is set - unless ( exists $args{'number'} ) { - croak( -"Missing the required parameter 'number' when calling test_endpoint_parameters" - ); + unless (exists $args{'number'}) { + croak("Missing the required parameter 'number' when calling test_endpoint_parameters"); } # verify the required parameter 'double' is set - unless ( exists $args{'double'} ) { - croak( -"Missing the required parameter 'double' when calling test_endpoint_parameters" - ); + unless (exists $args{'double'}) { + croak("Missing the required parameter 'double' when calling test_endpoint_parameters"); } # verify the required parameter 'pattern_without_delimiter' is set - unless ( exists $args{'pattern_without_delimiter'} ) { - croak( -"Missing the required parameter 'pattern_without_delimiter' when calling test_endpoint_parameters" - ); + unless (exists $args{'pattern_without_delimiter'}) { + croak("Missing the required parameter 'pattern_without_delimiter' when calling test_endpoint_parameters"); } # verify the required parameter 'byte' is set - unless ( exists $args{'byte'} ) { - croak( -"Missing the required parameter 'byte' when calling test_endpoint_parameters" - ); + unless (exists $args{'byte'}) { + croak("Missing the required parameter 'byte' when calling test_endpoint_parameters"); } # parse inputs my $_resource_path = '/fake'; - my $_method = 'POST'; - my $query_params = {}; + my $_method = 'POST'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = $self->{api_client} - ->select_header_content_type('application/x-www-form-urlencoded'); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('application/x-www-form-urlencoded'); # form params if ( exists $args{'integer'} ) { - $form_params->{'integer'} = - $self->{api_client}->to_form_value( $args{'integer'} ); + $form_params->{'integer'} = $self->{api_client}->to_form_value($args{'integer'}); } - + # form params if ( exists $args{'int32'} ) { - $form_params->{'int32'} = - $self->{api_client}->to_form_value( $args{'int32'} ); + $form_params->{'int32'} = $self->{api_client}->to_form_value($args{'int32'}); } - + # form params if ( exists $args{'int64'} ) { - $form_params->{'int64'} = - $self->{api_client}->to_form_value( $args{'int64'} ); + $form_params->{'int64'} = $self->{api_client}->to_form_value($args{'int64'}); } - + # form params if ( exists $args{'number'} ) { - $form_params->{'number'} = - $self->{api_client}->to_form_value( $args{'number'} ); + $form_params->{'number'} = $self->{api_client}->to_form_value($args{'number'}); } - + # form params if ( exists $args{'float'} ) { - $form_params->{'float'} = - $self->{api_client}->to_form_value( $args{'float'} ); + $form_params->{'float'} = $self->{api_client}->to_form_value($args{'float'}); } - + # form params if ( exists $args{'double'} ) { - $form_params->{'double'} = - $self->{api_client}->to_form_value( $args{'double'} ); + $form_params->{'double'} = $self->{api_client}->to_form_value($args{'double'}); } - + # form params if ( exists $args{'string'} ) { - $form_params->{'string'} = - $self->{api_client}->to_form_value( $args{'string'} ); + $form_params->{'string'} = $self->{api_client}->to_form_value($args{'string'}); } - + # form params if ( exists $args{'pattern_without_delimiter'} ) { - $form_params->{'pattern_without_delimiter'} = $self->{api_client} - ->to_form_value( $args{'pattern_without_delimiter'} ); + $form_params->{'pattern_without_delimiter'} = $self->{api_client}->to_form_value($args{'pattern_without_delimiter'}); } - + # form params if ( exists $args{'byte'} ) { - $form_params->{'byte'} = - $self->{api_client}->to_form_value( $args{'byte'} ); + $form_params->{'byte'} = $self->{api_client}->to_form_value($args{'byte'}); } - + # form params if ( exists $args{'binary'} ) { $form_params->{'binary'} = [] unless defined $form_params->{'binary'}; - push @{ $form_params->{'binary'} }, $args{'binary'}; - } - + push @{$form_params->{'binary'}}, $args{'binary'}; + } + # form params if ( exists $args{'date'} ) { - $form_params->{'date'} = - $self->{api_client}->to_form_value( $args{'date'} ); + $form_params->{'date'} = $self->{api_client}->to_form_value($args{'date'}); } - + # form params if ( exists $args{'date_time'} ) { - $form_params->{'dateTime'} = - $self->{api_client}->to_form_value( $args{'date_time'} ); + $form_params->{'dateTime'} = $self->{api_client}->to_form_value($args{'date_time'}); } - + # form params if ( exists $args{'password'} ) { - $form_params->{'password'} = - $self->{api_client}->to_form_value( $args{'password'} ); + $form_params->{'password'} = $self->{api_client}->to_form_value($args{'password'}); } - + # form params if ( exists $args{'callback'} ) { - $form_params->{'callback'} = - $self->{api_client}->to_form_value( $args{'callback'} ); + $form_params->{'callback'} = $self->{api_client}->to_form_value($args{'callback'}); } - + my $_body_data; - # authentication setting, if any my $auth_settings = [qw(http_basic_test )]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } @@ -785,7 +715,7 @@ sub test_endpoint_parameters { # test_enum_parameters # # To test enum parameters -# +# # @param ARRAY[string] $enum_header_string_array Header parameter enum test (string array) (optional) # @param string $enum_header_string Header parameter enum test (string) (optional, default to '-efg') # @param ARRAY[string] $enum_query_string_array Query parameter enum test (string array) (optional) @@ -796,133 +726,247 @@ sub test_endpoint_parameters { # @param string $enum_form_string Form parameter enum test (string) (optional, default to '-efg') { my $params = { - 'enum_header_string_array' => { - data_type => 'ARRAY[string]', - description => 'Header parameter enum test (string array)', - required => '0', - }, - 'enum_header_string' => { - data_type => 'string', - description => 'Header parameter enum test (string)', - required => '0', - }, - 'enum_query_string_array' => { - data_type => 'ARRAY[string]', - description => 'Query parameter enum test (string array)', - required => '0', - }, - 'enum_query_string' => { - data_type => 'string', - description => 'Query parameter enum test (string)', - required => '0', - }, - 'enum_query_integer' => { - data_type => 'int', - description => 'Query parameter enum test (double)', - required => '0', - }, - 'enum_query_double' => { - data_type => 'double', - description => 'Query parameter enum test (double)', - required => '0', - }, - 'enum_form_string_array' => { - data_type => 'ARRAY[string]', - description => 'Form parameter enum test (string array)', - required => '0', - }, - 'enum_form_string' => { - data_type => 'string', - description => 'Form parameter enum test (string)', - required => '0', - }, + 'enum_header_string_array' => { + data_type => 'ARRAY[string]', + description => 'Header parameter enum test (string array)', + required => '0', + }, + 'enum_header_string' => { + data_type => 'string', + description => 'Header parameter enum test (string)', + required => '0', + }, + 'enum_query_string_array' => { + data_type => 'ARRAY[string]', + description => 'Query parameter enum test (string array)', + required => '0', + }, + 'enum_query_string' => { + data_type => 'string', + description => 'Query parameter enum test (string)', + required => '0', + }, + 'enum_query_integer' => { + data_type => 'int', + description => 'Query parameter enum test (double)', + required => '0', + }, + 'enum_query_double' => { + data_type => 'double', + description => 'Query parameter enum test (double)', + required => '0', + }, + 'enum_form_string_array' => { + data_type => 'ARRAY[string]', + description => 'Form parameter enum test (string array)', + required => '0', + }, + 'enum_form_string' => { + data_type => 'string', + description => 'Form parameter enum test (string)', + required => '0', + }, }; - __PACKAGE__->method_documentation->{'test_enum_parameters'} = { - summary => 'To test enum parameters', - params => $params, + __PACKAGE__->method_documentation->{ 'test_enum_parameters' } = { + summary => 'To test enum parameters', + params => $params, returns => undef, - }; + }; } - # @return void # sub test_enum_parameters { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # parse inputs my $_resource_path = '/fake'; - my $_method = 'GET'; - my $query_params = {}; + my $_method = 'GET'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = $self->{api_client} - ->select_header_content_type('application/x-www-form-urlencoded'); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('application/x-www-form-urlencoded'); # query params - if ( exists $args{'enum_query_string_array'} ) { - $query_params->{'enum_query_string_array'} = $self->{api_client} - ->to_query_value( $args{'enum_query_string_array'} ); + if ( exists $args{'enum_query_string_array'}) { + $query_params->{'enum_query_string_array'} = $self->{api_client}->to_query_value($args{'enum_query_string_array'}); } # query params - if ( exists $args{'enum_query_string'} ) { - $query_params->{'enum_query_string'} = - $self->{api_client}->to_query_value( $args{'enum_query_string'} ); + if ( exists $args{'enum_query_string'}) { + $query_params->{'enum_query_string'} = $self->{api_client}->to_query_value($args{'enum_query_string'}); } # query params - if ( exists $args{'enum_query_integer'} ) { - $query_params->{'enum_query_integer'} = - $self->{api_client}->to_query_value( $args{'enum_query_integer'} ); + if ( exists $args{'enum_query_integer'}) { + $query_params->{'enum_query_integer'} = $self->{api_client}->to_query_value($args{'enum_query_integer'}); } # query params - if ( exists $args{'enum_query_double'} ) { - $query_params->{'enum_query_double'} = - $self->{api_client}->to_query_value( $args{'enum_query_double'} ); + if ( exists $args{'enum_query_double'}) { + $query_params->{'enum_query_double'} = $self->{api_client}->to_query_value($args{'enum_query_double'}); } # header params - if ( exists $args{'enum_header_string_array'} ) { - $header_params->{'enum_header_string_array'} = $self->{api_client} - ->to_header_value( $args{'enum_header_string_array'} ); + if ( exists $args{'enum_header_string_array'}) { + $header_params->{'enum_header_string_array'} = $self->{api_client}->to_header_value($args{'enum_header_string_array'}); } # header params - if ( exists $args{'enum_header_string'} ) { - $header_params->{'enum_header_string'} = - $self->{api_client}->to_header_value( $args{'enum_header_string'} ); + if ( exists $args{'enum_header_string'}) { + $header_params->{'enum_header_string'} = $self->{api_client}->to_header_value($args{'enum_header_string'}); } # form params if ( exists $args{'enum_form_string_array'} ) { - $form_params->{'enum_form_string_array'} = - $self->{api_client}->to_form_value( $args{'enum_form_string_array'} ); + $form_params->{'enum_form_string_array'} = $self->{api_client}->to_form_value($args{'enum_form_string_array'}); } - + # form params if ( exists $args{'enum_form_string'} ) { - $form_params->{'enum_form_string'} = - $self->{api_client}->to_form_value( $args{'enum_form_string'} ); + $form_params->{'enum_form_string'} = $self->{api_client}->to_form_value($args{'enum_form_string'}); } - + my $_body_data; - # authentication setting, if any my $auth_settings = [qw()]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + return; +} + +# +# test_group_parameters +# +# Fake endpoint to test group parameters (optional) +# +# @param int $required_string_group Required String in group parameters (required) +# @param boolean $required_boolean_group Required Boolean in group parameters (required) +# @param int $required_int64_group Required Integer in group parameters (required) +# @param int $string_group String in group parameters (optional) +# @param boolean $boolean_group Boolean in group parameters (optional) +# @param int $int64_group Integer in group parameters (optional) +{ + my $params = { + 'required_string_group' => { + data_type => 'int', + description => 'Required String in group parameters', + required => '1', + }, + 'required_boolean_group' => { + data_type => 'boolean', + description => 'Required Boolean in group parameters', + required => '1', + }, + 'required_int64_group' => { + data_type => 'int', + description => 'Required Integer in group parameters', + required => '1', + }, + 'string_group' => { + data_type => 'int', + description => 'String in group parameters', + required => '0', + }, + 'boolean_group' => { + data_type => 'boolean', + description => 'Boolean in group parameters', + required => '0', + }, + 'int64_group' => { + data_type => 'int', + description => 'Integer in group parameters', + required => '0', + }, + }; + __PACKAGE__->method_documentation->{ 'test_group_parameters' } = { + summary => 'Fake endpoint to test group parameters (optional)', + params => $params, + returns => undef, + }; +} +# @return void +# +sub test_group_parameters { + my ($self, %args) = @_; + + # verify the required parameter 'required_string_group' is set + unless (exists $args{'required_string_group'}) { + croak("Missing the required parameter 'required_string_group' when calling test_group_parameters"); + } + + # verify the required parameter 'required_boolean_group' is set + unless (exists $args{'required_boolean_group'}) { + croak("Missing the required parameter 'required_boolean_group' when calling test_group_parameters"); + } + + # verify the required parameter 'required_int64_group' is set + unless (exists $args{'required_int64_group'}) { + croak("Missing the required parameter 'required_int64_group' when calling test_group_parameters"); + } + + # parse inputs + my $_resource_path = '/fake'; + + my $_method = 'DELETE'; + my $query_params = {}; + my $header_params = {}; + my $form_params = {}; + + # 'Accept' and 'Content-Type' header + my $_header_accept = $self->{api_client}->select_header_accept(); + if ($_header_accept) { + $header_params->{'Accept'} = $_header_accept; + } + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); + + # query params + if ( exists $args{'required_string_group'}) { + $query_params->{'required_string_group'} = $self->{api_client}->to_query_value($args{'required_string_group'}); + } + + # query params + if ( exists $args{'required_int64_group'}) { + $query_params->{'required_int64_group'} = $self->{api_client}->to_query_value($args{'required_int64_group'}); + } + + # query params + if ( exists $args{'string_group'}) { + $query_params->{'string_group'} = $self->{api_client}->to_query_value($args{'string_group'}); + } + + # query params + if ( exists $args{'int64_group'}) { + $query_params->{'int64_group'} = $self->{api_client}->to_query_value($args{'int64_group'}); + } + + # header params + if ( exists $args{'required_boolean_group'}) { + $header_params->{'required_boolean_group'} = $self->{api_client}->to_header_value($args{'required_boolean_group'}); + } + + # header params + if ( exists $args{'boolean_group'}) { + $header_params->{'boolean_group'} = $self->{api_client}->to_header_value($args{'boolean_group'}); + } + + my $_body_data; + # authentication setting, if any + my $auth_settings = [qw()]; + + # make the API Call + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } @@ -930,55 +974,50 @@ sub test_enum_parameters { # test_inline_additional_properties # # test inline additionalProperties -# +# # @param HASH[string,string] $request_body request body (required) { my $params = { - 'request_body' => { - data_type => 'HASH[string,string]', - description => 'request body', - required => '1', - }, + 'request_body' => { + data_type => 'HASH[string,string]', + description => 'request body', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'test_inline_additional_properties'} = { - summary => 'test inline additionalProperties', - params => $params, + __PACKAGE__->method_documentation->{ 'test_inline_additional_properties' } = { + summary => 'test inline additionalProperties', + params => $params, returns => undef, - }; + }; } - # @return void # sub test_inline_additional_properties { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'request_body' is set - unless ( exists $args{'request_body'} ) { - croak( -"Missing the required parameter 'request_body' when calling test_inline_additional_properties" - ); + unless (exists $args{'request_body'}) { + croak("Missing the required parameter 'request_body' when calling test_inline_additional_properties"); } # parse inputs my $_resource_path = '/fake/inline-additionalProperties'; - my $_method = 'POST'; - my $query_params = {}; + my $_method = 'POST'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type('application/json'); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('application/json'); my $_body_data; - # body params - if ( exists $args{'request_body'} ) { + if ( exists $args{'request_body'}) { $_body_data = $args{'request_body'}; } @@ -986,10 +1025,9 @@ sub test_inline_additional_properties { my $auth_settings = [qw()]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } @@ -997,86 +1035,76 @@ sub test_inline_additional_properties { # test_json_form_data # # test json serialization of form data -# +# # @param string $param field1 (required) # @param string $param2 field2 (required) { my $params = { - 'param' => { - data_type => 'string', - description => 'field1', - required => '1', - }, - 'param2' => { - data_type => 'string', - description => 'field2', - required => '1', - }, + 'param' => { + data_type => 'string', + description => 'field1', + required => '1', + }, + 'param2' => { + data_type => 'string', + description => 'field2', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'test_json_form_data'} = { - summary => 'test json serialization of form data', - params => $params, + __PACKAGE__->method_documentation->{ 'test_json_form_data' } = { + summary => 'test json serialization of form data', + params => $params, returns => undef, - }; + }; } - # @return void # sub test_json_form_data { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'param' is set - unless ( exists $args{'param'} ) { - croak( -"Missing the required parameter 'param' when calling test_json_form_data" - ); + unless (exists $args{'param'}) { + croak("Missing the required parameter 'param' when calling test_json_form_data"); } # verify the required parameter 'param2' is set - unless ( exists $args{'param2'} ) { - croak( -"Missing the required parameter 'param2' when calling test_json_form_data" - ); + unless (exists $args{'param2'}) { + croak("Missing the required parameter 'param2' when calling test_json_form_data"); } # parse inputs my $_resource_path = '/fake/jsonFormData'; - my $_method = 'GET'; - my $query_params = {}; + my $_method = 'GET'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = $self->{api_client} - ->select_header_content_type('application/x-www-form-urlencoded'); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('application/x-www-form-urlencoded'); # form params if ( exists $args{'param'} ) { - $form_params->{'param'} = - $self->{api_client}->to_form_value( $args{'param'} ); + $form_params->{'param'} = $self->{api_client}->to_form_value($args{'param'}); } - + # form params if ( exists $args{'param2'} ) { - $form_params->{'param2'} = - $self->{api_client}->to_form_value( $args{'param2'} ); + $form_params->{'param2'} = $self->{api_client}->to_form_value($args{'param2'}); } - + my $_body_data; - # authentication setting, if any my $auth_settings = [qw()]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/FakeClassnameTags123Api.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/FakeClassnameTags123Api.pm index 1d84194e76e..382b1a27925 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/FakeClassnameTags123Api.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/FakeClassnameTags123Api.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -23,7 +22,7 @@ package WWW::OpenAPIClient::FakeClassnameTags123Api; require 5.6.0; use strict; use warnings; -use utf8; +use utf8; use Exporter; use Carp qw( croak ); use Log::Any qw($log); @@ -32,16 +31,15 @@ use WWW::OpenAPIClient::ApiClient; use base "Class::Data::Inheritable"; -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); +__PACKAGE__->mk_classdata('method_documentation' => {}); sub new { my $class = shift; my $api_client; - if ( $_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::ApiClient' ) { + if ($_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::ApiClient' ) { $api_client = $_[0]; - } - else { + } else { $api_client = WWW::OpenAPIClient::ApiClient->new(@_); } @@ -49,60 +47,55 @@ sub new { } + # # test_classname # # To test class name in snake case -# +# # @param Client $client client model (required) { my $params = { - 'client' => { - data_type => 'Client', - description => 'client model', - required => '1', - }, + 'client' => { + data_type => 'Client', + description => 'client model', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'test_classname'} = { - summary => 'To test class name in snake case', - params => $params, + __PACKAGE__->method_documentation->{ 'test_classname' } = { + summary => 'To test class name in snake case', + params => $params, returns => 'Client', - }; + }; } - # @return Client # sub test_classname { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'client' is set - unless ( exists $args{'client'} ) { - croak( -"Missing the required parameter 'client' when calling test_classname" - ); + unless (exists $args{'client'}) { + croak("Missing the required parameter 'client' when calling test_classname"); } # parse inputs my $_resource_path = '/fake_classname_test'; - my $_method = 'PATCH'; - my $query_params = {}; + my $_method = 'PATCH'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header - my $_header_accept = - $self->{api_client}->select_header_accept('application/json'); + my $_header_accept = $self->{api_client}->select_header_accept('application/json'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type('application/json'); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('application/json'); my $_body_data; - # body params - if ( exists $args{'client'} ) { + if ( exists $args{'client'}) { $_body_data = $args{'client'}; } @@ -110,15 +103,13 @@ sub test_classname { my $auth_settings = [qw(api_key_query )]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { return; } - my $_response_object = - $self->{api_client}->deserialize( 'Client', $response ); + my $_response_object = $self->{api_client}->deserialize('Client', $response); return $_response_object; } diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/AdditionalPropertiesClass.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/AdditionalPropertiesClass.pm index f675161eba1..fcd8f326ee4 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/AdditionalPropertiesClass.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/AdditionalPropertiesClass.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,129 +59,128 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'AdditionalPropertiesClass', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'map_property' => { - datatype => 'HASH[string,string]', - base_name => 'map_property', - description => '', - format => '', - read_only => '', - }, - 'map_of_map_property' => { - datatype => 'HASH[string,HASH[string,string]]', - base_name => 'map_of_map_property', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'map_property' => 'HASH[string,string]', - 'map_of_map_property' => 'HASH[string,HASH[string,string]]' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'AdditionalPropertiesClass', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'map_property' => 'map_property', - 'map_of_map_property' => 'map_of_map_property' - } -); +__PACKAGE__->method_documentation({ + 'map_property' => { + datatype => 'HASH[string,string]', + base_name => 'map_property', + description => '', + format => '', + read_only => '', + }, + 'map_of_map_property' => { + datatype => 'HASH[string,HASH[string,string]]', + base_name => 'map_of_map_property', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'map_property' => 'HASH[string,string]', + 'map_of_map_property' => 'HASH[string,HASH[string,string]]' +} ); + +__PACKAGE__->attribute_map( { + 'map_property' => 'map_property', + 'map_of_map_property' => 'map_of_map_property' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Adult.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Adult.pm new file mode 100644 index 00000000000..f7df6c4af8c --- /dev/null +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Adult.pm @@ -0,0 +1,231 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +package WWW::OpenAPIClient::Object::Adult; + +require 5.6.0; +use strict; +use warnings; +use utf8; +use JSON qw(decode_json); +use Data::Dumper; +use Module::Runtime qw(use_module); +use Log::Any qw($log); +use Date::Parse; +use DateTime; + +use WWW::OpenAPIClient::Object::Child; +use WWW::OpenAPIClient::Object::Human; +use WWW::OpenAPIClient::Object::Person; + +use base ("Class::Accessor", "Class::Data::Inheritable", "WWW::OpenAPIClient::Object::Person", "WWW::OpenAPIClient::Object::Human"); + +# +#A representation of an adult +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). Do not edit the class manually. +# REF: https://openapi-generator.tech +# + +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); + +# new plain object +sub new { + my ($class, %args) = @_; + + my $self = bless {}, $class; + + $self->init(%args); + + return $self; +} + +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } + + # initialize parent object Person + $self->WWW::OpenAPIClient::Object::Person::init(%args); + + # initialize parent object Human + $self->WWW::OpenAPIClient::Object::Human::init(%args); +} + +# return perl hash +sub to_hash { + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + # call Person to_hash and then combine hash + $_hash = { %$_hash, %$self->WWW::OpenAPIClient::Object::Person::to_hash }; + + # call Human to_hash and then combine hash + $_hash = { %$_hash, %$self->WWW::OpenAPIClient::Object::Human::to_hash }; + + return $_hash; +} + +# used by JSON for serialization +sub TO_JSON { + my $self = shift; + my $_data = {}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; + } + } + + # combine parent (Person) TO_JSON + $_data = { %$_data, %$self->WWW::OpenAPIClient::Object::Person::TO_JSON }; + + # combine parent (Human) TO_JSON + $_data = { %$_data, %$self->WWW::OpenAPIClient::Object::Human::TO_JSON }; + + return $_data; +} + +# from Perl hashref +sub from_hash { + my ($self, $hash) = @_; + + # loop through attributes and use openapi_types to deserialize the data + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); + my @_array = (); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); + } + $self->{$_key} = \@_array; + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); + } + } + + # call parent (Person) from_hash + $self->WWW::OpenAPIClient::Object::Person::from_hash($hash); + + # call parent (Human) from_hash + $self->WWW::OpenAPIClient::Object::Human::from_hash($hash); + + return $self; +} + +# deserialize non-array data +sub _deserialize { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { + return $data; + } else { # hash(model) + my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; + return $_instance->from_hash($data); + } +} + + + +__PACKAGE__->class_documentation({description => 'A representation of an adult', + class => 'Adult', + required => [], # TODO +} ); + +__PACKAGE__->method_documentation({ + 'duplicated_optional' => { + datatype => 'int', + base_name => 'duplicated_optional', + description => '', + format => '', + read_only => '', + }, + 'duplicated_required' => { + datatype => 'int', + base_name => 'duplicated_required', + description => '', + format => '', + read_only => '', + }, + 'children' => { + datatype => 'ARRAY[Child]', + base_name => 'children', + description => '', + format => '', + read_only => '', + }, + 'adult_required' => { + datatype => 'boolean', + base_name => 'adult_required', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'duplicated_optional' => 'int', + 'duplicated_required' => 'int', + 'children' => 'ARRAY[Child]', + 'adult_required' => 'boolean' +} ); + +__PACKAGE__->attribute_map( { + 'duplicated_optional' => 'duplicated_optional', + 'duplicated_required' => 'duplicated_required', + 'children' => 'children', + 'adult_required' => 'adult_required' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); + + +1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Animal.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Animal.pm index 8cb4ba10272..a8b83a9dba3 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Animal.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Animal.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,129 +59,128 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'Animal', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'class_name' => { - datatype => 'string', - base_name => 'className', - description => '', - format => '', - read_only => '', - }, - 'color' => { - datatype => 'string', - base_name => 'color', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'class_name' => 'string', - 'color' => 'string' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'Animal', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'class_name' => 'className', - 'color' => 'color' - } -); +__PACKAGE__->method_documentation({ + 'class_name' => { + datatype => 'string', + base_name => 'className', + description => '', + format => '', + read_only => '', + }, + 'color' => { + datatype => 'string', + base_name => 'color', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'class_name' => 'string', + 'color' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'class_name' => 'className', + 'color' => 'color' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ApiResponse.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ApiResponse.pm index 701001ede4e..b20ff4ea5aa 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ApiResponse.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ApiResponse.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,138 +59,137 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'ApiResponse', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'code' => { - datatype => 'int', - base_name => 'code', - description => '', - format => '', - read_only => '', - }, - 'type' => { - datatype => 'string', - base_name => 'type', - description => '', - format => '', - read_only => '', - }, - 'message' => { - datatype => 'string', - base_name => 'message', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'code' => 'int', - 'type' => 'string', - 'message' => 'string' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'ApiResponse', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'code' => 'code', - 'type' => 'type', - 'message' => 'message' - } -); +__PACKAGE__->method_documentation({ + 'code' => { + datatype => 'int', + base_name => 'code', + description => '', + format => '', + read_only => '', + }, + 'type' => { + datatype => 'string', + base_name => 'type', + description => '', + format => '', + read_only => '', + }, + 'message' => { + datatype => 'string', + base_name => 'message', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'code' => 'int', + 'type' => 'string', + 'message' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'code' => 'code', + 'type' => 'type', + 'message' => 'message' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ArrayOfArrayOfNumberOnly.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ArrayOfArrayOfNumberOnly.pm index f3765dca2f0..7c323897123 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ArrayOfArrayOfNumberOnly.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ArrayOfArrayOfNumberOnly.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,120 +59,119 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'ArrayOfArrayOfNumberOnly', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'array_array_number' => { - datatype => 'ARRAY[ARRAY[double]]', - base_name => 'ArrayArrayNumber', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'array_array_number' => 'ARRAY[ARRAY[double]]' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'ArrayOfArrayOfNumberOnly', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'array_array_number' => 'ArrayArrayNumber' - } -); +__PACKAGE__->method_documentation({ + 'array_array_number' => { + datatype => 'ARRAY[ARRAY[double]]', + base_name => 'ArrayArrayNumber', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'array_array_number' => 'ARRAY[ARRAY[double]]' +} ); + +__PACKAGE__->attribute_map( { + 'array_array_number' => 'ArrayArrayNumber' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ArrayOfNumberOnly.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ArrayOfNumberOnly.pm index ff843ba89e9..f2345fe36e1 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ArrayOfNumberOnly.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ArrayOfNumberOnly.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,120 +59,119 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'ArrayOfNumberOnly', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'array_number' => { - datatype => 'ARRAY[double]', - base_name => 'ArrayNumber', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'array_number' => 'ARRAY[double]' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'ArrayOfNumberOnly', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'array_number' => 'ArrayNumber' - } -); +__PACKAGE__->method_documentation({ + 'array_number' => { + datatype => 'ARRAY[double]', + base_name => 'ArrayNumber', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'array_number' => 'ARRAY[double]' +} ); + +__PACKAGE__->attribute_map( { + 'array_number' => 'ArrayNumber' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ArrayTest.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ArrayTest.pm index a8650160c4c..4fb4f559a44 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ArrayTest.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ArrayTest.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -33,7 +32,7 @@ use DateTime; use WWW::OpenAPIClient::Object::ReadOnlyFirst; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -61,138 +60,137 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'ArrayTest', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'array_of_string' => { - datatype => 'ARRAY[string]', - base_name => 'array_of_string', - description => '', - format => '', - read_only => '', - }, - 'array_array_of_integer' => { - datatype => 'ARRAY[ARRAY[int]]', - base_name => 'array_array_of_integer', - description => '', - format => '', - read_only => '', - }, - 'array_array_of_model' => { - datatype => 'ARRAY[ARRAY[ReadOnlyFirst]]', - base_name => 'array_array_of_model', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'array_of_string' => 'ARRAY[string]', - 'array_array_of_integer' => 'ARRAY[ARRAY[int]]', - 'array_array_of_model' => 'ARRAY[ARRAY[ReadOnlyFirst]]' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'ArrayTest', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'array_of_string' => 'array_of_string', - 'array_array_of_integer' => 'array_array_of_integer', - 'array_array_of_model' => 'array_array_of_model' - } -); +__PACKAGE__->method_documentation({ + 'array_of_string' => { + datatype => 'ARRAY[string]', + base_name => 'array_of_string', + description => '', + format => '', + read_only => '', + }, + 'array_array_of_integer' => { + datatype => 'ARRAY[ARRAY[int]]', + base_name => 'array_array_of_integer', + description => '', + format => '', + read_only => '', + }, + 'array_array_of_model' => { + datatype => 'ARRAY[ARRAY[ReadOnlyFirst]]', + base_name => 'array_array_of_model', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'array_of_string' => 'ARRAY[string]', + 'array_array_of_integer' => 'ARRAY[ARRAY[int]]', + 'array_array_of_model' => 'ARRAY[ARRAY[ReadOnlyFirst]]' +} ); + +__PACKAGE__->attribute_map( { + 'array_of_string' => 'array_of_string', + 'array_array_of_integer' => 'array_array_of_integer', + 'array_array_of_model' => 'array_array_of_model' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Capitalization.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Capitalization.pm index 493e82e13e2..b3499a73d70 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Capitalization.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Capitalization.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,165 +59,164 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'Capitalization', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'small_camel' => { - datatype => 'string', - base_name => 'smallCamel', - description => '', - format => '', - read_only => '', - }, - 'capital_camel' => { - datatype => 'string', - base_name => 'CapitalCamel', - description => '', - format => '', - read_only => '', - }, - 'small_snake' => { - datatype => 'string', - base_name => 'small_Snake', - description => '', - format => '', - read_only => '', - }, - 'capital_snake' => { - datatype => 'string', - base_name => 'Capital_Snake', - description => '', - format => '', - read_only => '', - }, - 'sca_eth_flow_points' => { - datatype => 'string', - base_name => 'SCA_ETH_Flow_Points', - description => '', - format => '', - read_only => '', - }, - 'att_name' => { - datatype => 'string', - base_name => 'ATT_NAME', - description => 'Name of the pet ', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'small_camel' => 'string', - 'capital_camel' => 'string', - 'small_snake' => 'string', - 'capital_snake' => 'string', - 'sca_eth_flow_points' => 'string', - 'att_name' => 'string' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'Capitalization', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'small_camel' => 'smallCamel', - 'capital_camel' => 'CapitalCamel', - 'small_snake' => 'small_Snake', - 'capital_snake' => 'Capital_Snake', - 'sca_eth_flow_points' => 'SCA_ETH_Flow_Points', - 'att_name' => 'ATT_NAME' - } -); +__PACKAGE__->method_documentation({ + 'small_camel' => { + datatype => 'string', + base_name => 'smallCamel', + description => '', + format => '', + read_only => '', + }, + 'capital_camel' => { + datatype => 'string', + base_name => 'CapitalCamel', + description => '', + format => '', + read_only => '', + }, + 'small_snake' => { + datatype => 'string', + base_name => 'small_Snake', + description => '', + format => '', + read_only => '', + }, + 'capital_snake' => { + datatype => 'string', + base_name => 'Capital_Snake', + description => '', + format => '', + read_only => '', + }, + 'sca_eth_flow_points' => { + datatype => 'string', + base_name => 'SCA_ETH_Flow_Points', + description => '', + format => '', + read_only => '', + }, + 'att_name' => { + datatype => 'string', + base_name => 'ATT_NAME', + description => 'Name of the pet ', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'small_camel' => 'string', + 'capital_camel' => 'string', + 'small_snake' => 'string', + 'capital_snake' => 'string', + 'sca_eth_flow_points' => 'string', + 'att_name' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'small_camel' => 'smallCamel', + 'capital_camel' => 'CapitalCamel', + 'small_snake' => 'small_Snake', + 'capital_snake' => 'Capital_Snake', + 'sca_eth_flow_points' => 'SCA_ETH_Flow_Points', + 'att_name' => 'ATT_NAME' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Cat.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Cat.pm index 0e22589604e..9abd91bde50 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Cat.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Cat.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -33,7 +32,7 @@ use DateTime; use WWW::OpenAPIClient::Object::Animal; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); +use base ("Class::Accessor", "Class::Data::Inheritable", "WWW::OpenAPIClient::Object::Animal"); # # @@ -61,138 +60,131 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } + + # initialize parent object Animal + $self->WWW::OpenAPIClient::Object::Animal::init(%args); } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + # call Animal to_hash and then combine hash + $_hash = { %$_hash, %$self->WWW::OpenAPIClient::Object::Animal::to_hash }; + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + + # combine parent (Animal) TO_JSON + $_data = { %$_data, %$self->WWW::OpenAPIClient::Object::Animal::TO_JSON }; + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } + # call parent (Animal) from_hash + $self->WWW::OpenAPIClient::Object::Animal::from_hash($hash); + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'Cat', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'class_name' => { - datatype => 'string', - base_name => 'className', - description => '', - format => '', - read_only => '', - }, - 'color' => { - datatype => 'string', - base_name => 'color', - description => '', - format => '', - read_only => '', - }, - 'declawed' => { - datatype => 'boolean', - base_name => 'declawed', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'class_name' => 'string', - 'color' => 'string', - 'declawed' => 'boolean' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'Cat', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'class_name' => 'className', - 'color' => 'color', - 'declawed' => 'declawed' - } -); +__PACKAGE__->method_documentation({ + 'declawed' => { + datatype => 'boolean', + base_name => 'declawed', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'declawed' => 'boolean' +} ); + +__PACKAGE__->attribute_map( { + 'declawed' => 'declawed' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Category.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Category.pm index 31ca1111722..a9b5b87f531 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Category.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Category.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,129 +59,128 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'Category', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'id' => { - datatype => 'int', - base_name => 'id', - description => '', - format => '', - read_only => '', - }, - 'name' => { - datatype => 'string', - base_name => 'name', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'id' => 'int', - 'name' => 'string' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'Category', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'id' => 'id', - 'name' => 'name' - } -); +__PACKAGE__->method_documentation({ + 'id' => { + datatype => 'int', + base_name => 'id', + description => '', + format => '', + read_only => '', + }, + 'name' => { + datatype => 'string', + base_name => 'name', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'id' => 'int', + 'name' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'id' => 'id', + 'name' => 'name' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Child.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Child.pm new file mode 100644 index 00000000000..3cb4c2ae6ce --- /dev/null +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Child.pm @@ -0,0 +1,199 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +package WWW::OpenAPIClient::Object::Child; + +require 5.6.0; +use strict; +use warnings; +use utf8; +use JSON qw(decode_json); +use Data::Dumper; +use Module::Runtime qw(use_module); +use Log::Any qw($log); +use Date::Parse; +use DateTime; + +use WWW::OpenAPIClient::Object::Person; + +use base ("Class::Accessor", "Class::Data::Inheritable", "WWW::OpenAPIClient::Object::Person"); + +# +#A representation of a child +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). Do not edit the class manually. +# REF: https://openapi-generator.tech +# + +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); + +# new plain object +sub new { + my ($class, %args) = @_; + + my $self = bless {}, $class; + + $self->init(%args); + + return $self; +} + +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } + + # initialize parent object Person + $self->WWW::OpenAPIClient::Object::Person::init(%args); +} + +# return perl hash +sub to_hash { + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + # call Person to_hash and then combine hash + $_hash = { %$_hash, %$self->WWW::OpenAPIClient::Object::Person::to_hash }; + + return $_hash; +} + +# used by JSON for serialization +sub TO_JSON { + my $self = shift; + my $_data = {}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; + } + } + + # combine parent (Person) TO_JSON + $_data = { %$_data, %$self->WWW::OpenAPIClient::Object::Person::TO_JSON }; + + return $_data; +} + +# from Perl hashref +sub from_hash { + my ($self, $hash) = @_; + + # loop through attributes and use openapi_types to deserialize the data + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); + my @_array = (); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); + } + $self->{$_key} = \@_array; + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); + } + } + + # call parent (Person) from_hash + $self->WWW::OpenAPIClient::Object::Person::from_hash($hash); + + return $self; +} + +# deserialize non-array data +sub _deserialize { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { + return $data; + } else { # hash(model) + my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; + return $_instance->from_hash($data); + } +} + + + +__PACKAGE__->class_documentation({description => 'A representation of a child', + class => 'Child', + required => [], # TODO +} ); + +__PACKAGE__->method_documentation({ + 'age' => { + datatype => 'int', + base_name => 'age', + description => '', + format => '', + read_only => '', + }, + 'first_name' => { + datatype => 'string', + base_name => 'firstName', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'age' => 'int', + 'first_name' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'age' => 'age', + 'first_name' => 'firstName' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); + + +1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ClassModel.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ClassModel.pm index 21862aa4c2f..4c58b0d484e 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ClassModel.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ClassModel.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # #Model for testing model with \"_class\" property @@ -59,121 +59,119 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => - 'Model for testing model with \"_class\" property', - class => 'ClassModel', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - '_class' => { - datatype => 'string', - base_name => '_class', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - '_class' => 'string' - } -); +__PACKAGE__->class_documentation({description => 'Model for testing model with \"_class\" property', + class => 'ClassModel', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - '_class' => '_class' - } -); +__PACKAGE__->method_documentation({ + '_class' => { + datatype => 'string', + base_name => '_class', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + '_class' => 'string' +} ); + +__PACKAGE__->attribute_map( { + '_class' => '_class' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Client.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Client.pm index 3f066f5e7be..067d007e4aa 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Client.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Client.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,120 +59,119 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'Client', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'client' => { - datatype => 'string', - base_name => 'client', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'client' => 'string' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'Client', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'client' => 'client' - } -); +__PACKAGE__->method_documentation({ + 'client' => { + datatype => 'string', + base_name => 'client', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'client' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'client' => 'client' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Dog.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Dog.pm index 0c3f8affbe2..cd4923281b4 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Dog.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Dog.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -33,7 +32,7 @@ use DateTime; use WWW::OpenAPIClient::Object::Animal; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); +use base ("Class::Accessor", "Class::Data::Inheritable", "WWW::OpenAPIClient::Object::Animal"); # # @@ -61,138 +60,131 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } + + # initialize parent object Animal + $self->WWW::OpenAPIClient::Object::Animal::init(%args); } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + # call Animal to_hash and then combine hash + $_hash = { %$_hash, %$self->WWW::OpenAPIClient::Object::Animal::to_hash }; + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + + # combine parent (Animal) TO_JSON + $_data = { %$_data, %$self->WWW::OpenAPIClient::Object::Animal::TO_JSON }; + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } + # call parent (Animal) from_hash + $self->WWW::OpenAPIClient::Object::Animal::from_hash($hash); + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'Dog', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'class_name' => { - datatype => 'string', - base_name => 'className', - description => '', - format => '', - read_only => '', - }, - 'color' => { - datatype => 'string', - base_name => 'color', - description => '', - format => '', - read_only => '', - }, - 'breed' => { - datatype => 'string', - base_name => 'breed', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'class_name' => 'string', - 'color' => 'string', - 'breed' => 'string' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'Dog', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'class_name' => 'className', - 'color' => 'color', - 'breed' => 'breed' - } -); +__PACKAGE__->method_documentation({ + 'breed' => { + datatype => 'string', + base_name => 'breed', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'breed' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'breed' => 'breed' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/EnumArrays.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/EnumArrays.pm index 1fd1ff7f64c..ba4457dcf63 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/EnumArrays.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/EnumArrays.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,129 +59,128 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'EnumArrays', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'just_symbol' => { - datatype => 'string', - base_name => 'just_symbol', - description => '', - format => '', - read_only => '', - }, - 'array_enum' => { - datatype => 'ARRAY[string]', - base_name => 'array_enum', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'just_symbol' => 'string', - 'array_enum' => 'ARRAY[string]' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'EnumArrays', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'just_symbol' => 'just_symbol', - 'array_enum' => 'array_enum' - } -); +__PACKAGE__->method_documentation({ + 'just_symbol' => { + datatype => 'string', + base_name => 'just_symbol', + description => '', + format => '', + read_only => '', + }, + 'array_enum' => { + datatype => 'ARRAY[string]', + base_name => 'array_enum', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'just_symbol' => 'string', + 'array_enum' => 'ARRAY[string]' +} ); + +__PACKAGE__->attribute_map( { + 'just_symbol' => 'just_symbol', + 'array_enum' => 'array_enum' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/EnumClass.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/EnumClass.pm index 536a4704b9e..2d3b2ed876d 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/EnumClass.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/EnumClass.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,110 +59,112 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'EnumClass', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( {} ); -__PACKAGE__->openapi_types( - { +__PACKAGE__->class_documentation({description => '', + class => 'EnumClass', + required => [], # TODO +} ); - } -); +__PACKAGE__->method_documentation({ +}); -__PACKAGE__->attribute_map( - { +__PACKAGE__->openapi_types( { + +} ); - } -); +__PACKAGE__->attribute_map( { + +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/EnumTest.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/EnumTest.pm index eae5b321562..7d5aac67a33 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/EnumTest.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/EnumTest.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -33,7 +32,7 @@ use DateTime; use WWW::OpenAPIClient::Object::OuterEnum; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -61,156 +60,155 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'EnumTest', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'enum_string' => { - datatype => 'string', - base_name => 'enum_string', - description => '', - format => '', - read_only => '', - }, - 'enum_string_required' => { - datatype => 'string', - base_name => 'enum_string_required', - description => '', - format => '', - read_only => '', - }, - 'enum_integer' => { - datatype => 'int', - base_name => 'enum_integer', - description => '', - format => '', - read_only => '', - }, - 'enum_number' => { - datatype => 'double', - base_name => 'enum_number', - description => '', - format => '', - read_only => '', - }, - 'outer_enum' => { - datatype => 'OuterEnum', - base_name => 'outerEnum', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'enum_string' => 'string', - 'enum_string_required' => 'string', - 'enum_integer' => 'int', - 'enum_number' => 'double', - 'outer_enum' => 'OuterEnum' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'EnumTest', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'enum_string' => 'enum_string', - 'enum_string_required' => 'enum_string_required', - 'enum_integer' => 'enum_integer', - 'enum_number' => 'enum_number', - 'outer_enum' => 'outerEnum' - } -); +__PACKAGE__->method_documentation({ + 'enum_string' => { + datatype => 'string', + base_name => 'enum_string', + description => '', + format => '', + read_only => '', + }, + 'enum_string_required' => { + datatype => 'string', + base_name => 'enum_string_required', + description => '', + format => '', + read_only => '', + }, + 'enum_integer' => { + datatype => 'int', + base_name => 'enum_integer', + description => '', + format => '', + read_only => '', + }, + 'enum_number' => { + datatype => 'double', + base_name => 'enum_number', + description => '', + format => '', + read_only => '', + }, + 'outer_enum' => { + datatype => 'OuterEnum', + base_name => 'outerEnum', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'enum_string' => 'string', + 'enum_string_required' => 'string', + 'enum_integer' => 'int', + 'enum_number' => 'double', + 'outer_enum' => 'OuterEnum' +} ); + +__PACKAGE__->attribute_map( { + 'enum_string' => 'enum_string', + 'enum_string_required' => 'enum_string_required', + 'enum_integer' => 'enum_integer', + 'enum_number' => 'enum_number', + 'outer_enum' => 'outerEnum' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/File.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/File.pm index cc2bb1d41d6..54ecfb6dc7c 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/File.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/File.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # #Must be named `File` for test. @@ -59,120 +59,119 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => 'Must be named `File` for test.', - class => 'File', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'source_uri' => { - datatype => 'string', - base_name => 'sourceURI', - description => 'Test capitalization', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'source_uri' => 'string' - } -); +__PACKAGE__->class_documentation({description => 'Must be named `File` for test.', + class => 'File', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'source_uri' => 'sourceURI' - } -); +__PACKAGE__->method_documentation({ + 'source_uri' => { + datatype => 'string', + base_name => 'sourceURI', + description => 'Test capitalization', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'source_uri' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'source_uri' => 'sourceURI' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/FileSchemaTestClass.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/FileSchemaTestClass.pm index 5a77413ba12..8ce61b68846 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/FileSchemaTestClass.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/FileSchemaTestClass.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -33,7 +32,7 @@ use DateTime; use WWW::OpenAPIClient::Object::File; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -61,129 +60,128 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'FileSchemaTestClass', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'file' => { - datatype => 'File', - base_name => 'file', - description => '', - format => '', - read_only => '', - }, - 'files' => { - datatype => 'ARRAY[File]', - base_name => 'files', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'file' => 'File', - 'files' => 'ARRAY[File]' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'FileSchemaTestClass', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'file' => 'file', - 'files' => 'files' - } -); +__PACKAGE__->method_documentation({ + 'file' => { + datatype => 'File', + base_name => 'file', + description => '', + format => '', + read_only => '', + }, + 'files' => { + datatype => 'ARRAY[File]', + base_name => 'files', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'file' => 'File', + 'files' => 'ARRAY[File]' +} ); + +__PACKAGE__->attribute_map( { + 'file' => 'file', + 'files' => 'files' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Foo.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Foo.pm new file mode 100644 index 00000000000..2ccc4a96585 --- /dev/null +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Foo.pm @@ -0,0 +1,177 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +package WWW::OpenAPIClient::Object::Foo; + +require 5.6.0; +use strict; +use warnings; +use utf8; +use JSON qw(decode_json); +use Data::Dumper; +use Module::Runtime qw(use_module); +use Log::Any qw($log); +use Date::Parse; +use DateTime; + + +use base ("Class::Accessor", "Class::Data::Inheritable"); + +# +# +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). Do not edit the class manually. +# REF: https://openapi-generator.tech +# + +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); + +# new plain object +sub new { + my ($class, %args) = @_; + + my $self = bless {}, $class; + + $self->init(%args); + + return $self; +} + +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } +} + +# return perl hash +sub to_hash { + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; +} + +# used by JSON for serialization +sub TO_JSON { + my $self = shift; + my $_data = {}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; + } + } + + return $_data; +} + +# from Perl hashref +sub from_hash { + my ($self, $hash) = @_; + + # loop through attributes and use openapi_types to deserialize the data + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); + my @_array = (); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); + } + $self->{$_key} = \@_array; + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); + } + } + + return $self; +} + +# deserialize non-array data +sub _deserialize { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { + return $data; + } else { # hash(model) + my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; + return $_instance->from_hash($data); + } +} + + + +__PACKAGE__->class_documentation({description => '', + class => 'Foo', + required => [], # TODO +} ); + +__PACKAGE__->method_documentation({ + 'bar' => { + datatype => 'string', + base_name => 'bar', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'bar' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'bar' => 'bar' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); + + +1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/FormatTest.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/FormatTest.pm index 625631c4773..cc8dd5f3fe1 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/FormatTest.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/FormatTest.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,228 +59,227 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'FormatTest', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'integer' => { - datatype => 'int', - base_name => 'integer', - description => '', - format => '', - read_only => '', - }, - 'int32' => { - datatype => 'int', - base_name => 'int32', - description => '', - format => '', - read_only => '', - }, - 'int64' => { - datatype => 'int', - base_name => 'int64', - description => '', - format => '', - read_only => '', - }, - 'number' => { - datatype => 'double', - base_name => 'number', - description => '', - format => '', - read_only => '', - }, - 'float' => { - datatype => 'double', - base_name => 'float', - description => '', - format => '', - read_only => '', - }, - 'double' => { - datatype => 'double', - base_name => 'double', - description => '', - format => '', - read_only => '', - }, - 'string' => { - datatype => 'string', - base_name => 'string', - description => '', - format => '', - read_only => '', - }, - 'byte' => { - datatype => 'string', - base_name => 'byte', - description => '', - format => '', - read_only => '', - }, - 'binary' => { - datatype => 'string', - base_name => 'binary', - description => '', - format => '', - read_only => '', - }, - 'date' => { - datatype => 'DateTime', - base_name => 'date', - description => '', - format => '', - read_only => '', - }, - 'date_time' => { - datatype => 'DateTime', - base_name => 'dateTime', - description => '', - format => '', - read_only => '', - }, - 'uuid' => { - datatype => 'string', - base_name => 'uuid', - description => '', - format => '', - read_only => '', - }, - 'password' => { - datatype => 'string', - base_name => 'password', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'integer' => 'int', - 'int32' => 'int', - 'int64' => 'int', - 'number' => 'double', - 'float' => 'double', - 'double' => 'double', - 'string' => 'string', - 'byte' => 'string', - 'binary' => 'string', - 'date' => 'DateTime', - 'date_time' => 'DateTime', - 'uuid' => 'string', - 'password' => 'string' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'FormatTest', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'integer' => 'integer', - 'int32' => 'int32', - 'int64' => 'int64', - 'number' => 'number', - 'float' => 'float', - 'double' => 'double', - 'string' => 'string', - 'byte' => 'byte', - 'binary' => 'binary', - 'date' => 'date', - 'date_time' => 'dateTime', - 'uuid' => 'uuid', - 'password' => 'password' - } -); +__PACKAGE__->method_documentation({ + 'integer' => { + datatype => 'int', + base_name => 'integer', + description => '', + format => '', + read_only => '', + }, + 'int32' => { + datatype => 'int', + base_name => 'int32', + description => '', + format => '', + read_only => '', + }, + 'int64' => { + datatype => 'int', + base_name => 'int64', + description => '', + format => '', + read_only => '', + }, + 'number' => { + datatype => 'double', + base_name => 'number', + description => '', + format => '', + read_only => '', + }, + 'float' => { + datatype => 'double', + base_name => 'float', + description => '', + format => '', + read_only => '', + }, + 'double' => { + datatype => 'double', + base_name => 'double', + description => '', + format => '', + read_only => '', + }, + 'string' => { + datatype => 'string', + base_name => 'string', + description => '', + format => '', + read_only => '', + }, + 'byte' => { + datatype => 'string', + base_name => 'byte', + description => '', + format => '', + read_only => '', + }, + 'binary' => { + datatype => 'string', + base_name => 'binary', + description => '', + format => '', + read_only => '', + }, + 'date' => { + datatype => 'DateTime', + base_name => 'date', + description => '', + format => '', + read_only => '', + }, + 'date_time' => { + datatype => 'DateTime', + base_name => 'dateTime', + description => '', + format => '', + read_only => '', + }, + 'uuid' => { + datatype => 'string', + base_name => 'uuid', + description => '', + format => '', + read_only => '', + }, + 'password' => { + datatype => 'string', + base_name => 'password', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'integer' => 'int', + 'int32' => 'int', + 'int64' => 'int', + 'number' => 'double', + 'float' => 'double', + 'double' => 'double', + 'string' => 'string', + 'byte' => 'string', + 'binary' => 'string', + 'date' => 'DateTime', + 'date_time' => 'DateTime', + 'uuid' => 'string', + 'password' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'integer' => 'integer', + 'int32' => 'int32', + 'int64' => 'int64', + 'number' => 'number', + 'float' => 'float', + 'double' => 'double', + 'string' => 'string', + 'byte' => 'byte', + 'binary' => 'binary', + 'date' => 'date', + 'date_time' => 'dateTime', + 'uuid' => 'uuid', + 'password' => 'password' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/HasOnlyReadOnly.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/HasOnlyReadOnly.pm index 843d7de9a6a..c9f0a263665 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/HasOnlyReadOnly.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/HasOnlyReadOnly.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,129 +59,128 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'HasOnlyReadOnly', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'bar' => { - datatype => 'string', - base_name => 'bar', - description => '', - format => '', - read_only => '', - }, - 'foo' => { - datatype => 'string', - base_name => 'foo', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'bar' => 'string', - 'foo' => 'string' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'HasOnlyReadOnly', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'bar' => 'bar', - 'foo' => 'foo' - } -); +__PACKAGE__->method_documentation({ + 'bar' => { + datatype => 'string', + base_name => 'bar', + description => '', + format => '', + read_only => '', + }, + 'foo' => { + datatype => 'string', + base_name => 'foo', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'bar' => 'string', + 'foo' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'bar' => 'bar', + 'foo' => 'foo' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Human.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Human.pm new file mode 100644 index 00000000000..9d54bc86753 --- /dev/null +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Human.pm @@ -0,0 +1,186 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +package WWW::OpenAPIClient::Object::Human; + +require 5.6.0; +use strict; +use warnings; +use utf8; +use JSON qw(decode_json); +use Data::Dumper; +use Module::Runtime qw(use_module); +use Log::Any qw($log); +use Date::Parse; +use DateTime; + + +use base ("Class::Accessor", "Class::Data::Inheritable"); + +# +# +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). Do not edit the class manually. +# REF: https://openapi-generator.tech +# + +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); + +# new plain object +sub new { + my ($class, %args) = @_; + + my $self = bless {}, $class; + + $self->init(%args); + + return $self; +} + +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } +} + +# return perl hash +sub to_hash { + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; +} + +# used by JSON for serialization +sub TO_JSON { + my $self = shift; + my $_data = {}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; + } + } + + return $_data; +} + +# from Perl hashref +sub from_hash { + my ($self, $hash) = @_; + + # loop through attributes and use openapi_types to deserialize the data + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); + my @_array = (); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); + } + $self->{$_key} = \@_array; + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); + } + } + + return $self; +} + +# deserialize non-array data +sub _deserialize { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { + return $data; + } else { # hash(model) + my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; + return $_instance->from_hash($data); + } +} + + + +__PACKAGE__->class_documentation({description => '', + class => 'Human', + required => [], # TODO +} ); + +__PACKAGE__->method_documentation({ + '___type' => { + datatype => 'string', + base_name => '$_type', + description => '', + format => '', + read_only => '', + }, + 'body' => { + datatype => 'string', + base_name => 'body', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + '___type' => 'string', + 'body' => 'string' +} ); + +__PACKAGE__->attribute_map( { + '___type' => '$_type', + 'body' => 'body' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); + + +1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject.pm new file mode 100644 index 00000000000..929285419f4 --- /dev/null +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject.pm @@ -0,0 +1,186 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +package WWW::OpenAPIClient::Object::InlineObject; + +require 5.6.0; +use strict; +use warnings; +use utf8; +use JSON qw(decode_json); +use Data::Dumper; +use Module::Runtime qw(use_module); +use Log::Any qw($log); +use Date::Parse; +use DateTime; + + +use base ("Class::Accessor", "Class::Data::Inheritable"); + +# +# +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). Do not edit the class manually. +# REF: https://openapi-generator.tech +# + +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); + +# new plain object +sub new { + my ($class, %args) = @_; + + my $self = bless {}, $class; + + $self->init(%args); + + return $self; +} + +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } +} + +# return perl hash +sub to_hash { + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; +} + +# used by JSON for serialization +sub TO_JSON { + my $self = shift; + my $_data = {}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; + } + } + + return $_data; +} + +# from Perl hashref +sub from_hash { + my ($self, $hash) = @_; + + # loop through attributes and use openapi_types to deserialize the data + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); + my @_array = (); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); + } + $self->{$_key} = \@_array; + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); + } + } + + return $self; +} + +# deserialize non-array data +sub _deserialize { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { + return $data; + } else { # hash(model) + my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; + return $_instance->from_hash($data); + } +} + + + +__PACKAGE__->class_documentation({description => '', + class => 'InlineObject', + required => [], # TODO +} ); + +__PACKAGE__->method_documentation({ + 'name' => { + datatype => 'string', + base_name => 'name', + description => 'Updated name of the pet', + format => '', + read_only => '', + }, + 'status' => { + datatype => 'string', + base_name => 'status', + description => 'Updated status of the pet', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'name' => 'string', + 'status' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'name' => 'name', + 'status' => 'status' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); + + +1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject1.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject1.pm new file mode 100644 index 00000000000..cc509cfad2b --- /dev/null +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject1.pm @@ -0,0 +1,186 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +package WWW::OpenAPIClient::Object::InlineObject1; + +require 5.6.0; +use strict; +use warnings; +use utf8; +use JSON qw(decode_json); +use Data::Dumper; +use Module::Runtime qw(use_module); +use Log::Any qw($log); +use Date::Parse; +use DateTime; + + +use base ("Class::Accessor", "Class::Data::Inheritable"); + +# +# +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). Do not edit the class manually. +# REF: https://openapi-generator.tech +# + +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); + +# new plain object +sub new { + my ($class, %args) = @_; + + my $self = bless {}, $class; + + $self->init(%args); + + return $self; +} + +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } +} + +# return perl hash +sub to_hash { + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; +} + +# used by JSON for serialization +sub TO_JSON { + my $self = shift; + my $_data = {}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; + } + } + + return $_data; +} + +# from Perl hashref +sub from_hash { + my ($self, $hash) = @_; + + # loop through attributes and use openapi_types to deserialize the data + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); + my @_array = (); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); + } + $self->{$_key} = \@_array; + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); + } + } + + return $self; +} + +# deserialize non-array data +sub _deserialize { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { + return $data; + } else { # hash(model) + my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; + return $_instance->from_hash($data); + } +} + + + +__PACKAGE__->class_documentation({description => '', + class => 'InlineObject1', + required => [], # TODO +} ); + +__PACKAGE__->method_documentation({ + 'additional_metadata' => { + datatype => 'string', + base_name => 'additionalMetadata', + description => 'Additional data to pass to server', + format => '', + read_only => '', + }, + 'file' => { + datatype => 'string', + base_name => 'file', + description => 'file to upload', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'additional_metadata' => 'string', + 'file' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'additional_metadata' => 'additionalMetadata', + 'file' => 'file' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); + + +1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject2.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject2.pm new file mode 100644 index 00000000000..5752717d804 --- /dev/null +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject2.pm @@ -0,0 +1,186 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +package WWW::OpenAPIClient::Object::InlineObject2; + +require 5.6.0; +use strict; +use warnings; +use utf8; +use JSON qw(decode_json); +use Data::Dumper; +use Module::Runtime qw(use_module); +use Log::Any qw($log); +use Date::Parse; +use DateTime; + + +use base ("Class::Accessor", "Class::Data::Inheritable"); + +# +# +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). Do not edit the class manually. +# REF: https://openapi-generator.tech +# + +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); + +# new plain object +sub new { + my ($class, %args) = @_; + + my $self = bless {}, $class; + + $self->init(%args); + + return $self; +} + +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } +} + +# return perl hash +sub to_hash { + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; +} + +# used by JSON for serialization +sub TO_JSON { + my $self = shift; + my $_data = {}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; + } + } + + return $_data; +} + +# from Perl hashref +sub from_hash { + my ($self, $hash) = @_; + + # loop through attributes and use openapi_types to deserialize the data + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); + my @_array = (); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); + } + $self->{$_key} = \@_array; + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); + } + } + + return $self; +} + +# deserialize non-array data +sub _deserialize { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { + return $data; + } else { # hash(model) + my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; + return $_instance->from_hash($data); + } +} + + + +__PACKAGE__->class_documentation({description => '', + class => 'InlineObject2', + required => [], # TODO +} ); + +__PACKAGE__->method_documentation({ + 'enum_form_string_array' => { + datatype => 'ARRAY[string]', + base_name => 'enum_form_string_array', + description => 'Form parameter enum test (string array)', + format => '', + read_only => '', + }, + 'enum_form_string' => { + datatype => 'string', + base_name => 'enum_form_string', + description => 'Form parameter enum test (string)', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'enum_form_string_array' => 'ARRAY[string]', + 'enum_form_string' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'enum_form_string_array' => 'enum_form_string_array', + 'enum_form_string' => 'enum_form_string' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); + + +1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject3.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject3.pm new file mode 100644 index 00000000000..3ac0f2a226b --- /dev/null +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject3.pm @@ -0,0 +1,294 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +package WWW::OpenAPIClient::Object::InlineObject3; + +require 5.6.0; +use strict; +use warnings; +use utf8; +use JSON qw(decode_json); +use Data::Dumper; +use Module::Runtime qw(use_module); +use Log::Any qw($log); +use Date::Parse; +use DateTime; + + +use base ("Class::Accessor", "Class::Data::Inheritable"); + +# +# +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). Do not edit the class manually. +# REF: https://openapi-generator.tech +# + +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); + +# new plain object +sub new { + my ($class, %args) = @_; + + my $self = bless {}, $class; + + $self->init(%args); + + return $self; +} + +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } +} + +# return perl hash +sub to_hash { + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; +} + +# used by JSON for serialization +sub TO_JSON { + my $self = shift; + my $_data = {}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; + } + } + + return $_data; +} + +# from Perl hashref +sub from_hash { + my ($self, $hash) = @_; + + # loop through attributes and use openapi_types to deserialize the data + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); + my @_array = (); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); + } + $self->{$_key} = \@_array; + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); + } + } + + return $self; +} + +# deserialize non-array data +sub _deserialize { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { + return $data; + } else { # hash(model) + my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; + return $_instance->from_hash($data); + } +} + + + +__PACKAGE__->class_documentation({description => '', + class => 'InlineObject3', + required => [], # TODO +} ); + +__PACKAGE__->method_documentation({ + 'integer' => { + datatype => 'int', + base_name => 'integer', + description => 'None', + format => '', + read_only => '', + }, + 'int32' => { + datatype => 'int', + base_name => 'int32', + description => 'None', + format => '', + read_only => '', + }, + 'int64' => { + datatype => 'int', + base_name => 'int64', + description => 'None', + format => '', + read_only => '', + }, + 'number' => { + datatype => 'double', + base_name => 'number', + description => 'None', + format => '', + read_only => '', + }, + 'float' => { + datatype => 'double', + base_name => 'float', + description => 'None', + format => '', + read_only => '', + }, + 'double' => { + datatype => 'double', + base_name => 'double', + description => 'None', + format => '', + read_only => '', + }, + 'string' => { + datatype => 'string', + base_name => 'string', + description => 'None', + format => '', + read_only => '', + }, + 'pattern_without_delimiter' => { + datatype => 'string', + base_name => 'pattern_without_delimiter', + description => 'None', + format => '', + read_only => '', + }, + 'byte' => { + datatype => 'string', + base_name => 'byte', + description => 'None', + format => '', + read_only => '', + }, + 'binary' => { + datatype => 'string', + base_name => 'binary', + description => 'None', + format => '', + read_only => '', + }, + 'date' => { + datatype => 'DateTime', + base_name => 'date', + description => 'None', + format => '', + read_only => '', + }, + 'date_time' => { + datatype => 'DateTime', + base_name => 'dateTime', + description => 'None', + format => '', + read_only => '', + }, + 'password' => { + datatype => 'string', + base_name => 'password', + description => 'None', + format => '', + read_only => '', + }, + 'callback' => { + datatype => 'string', + base_name => 'callback', + description => 'None', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'integer' => 'int', + 'int32' => 'int', + 'int64' => 'int', + 'number' => 'double', + 'float' => 'double', + 'double' => 'double', + 'string' => 'string', + 'pattern_without_delimiter' => 'string', + 'byte' => 'string', + 'binary' => 'string', + 'date' => 'DateTime', + 'date_time' => 'DateTime', + 'password' => 'string', + 'callback' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'integer' => 'integer', + 'int32' => 'int32', + 'int64' => 'int64', + 'number' => 'number', + 'float' => 'float', + 'double' => 'double', + 'string' => 'string', + 'pattern_without_delimiter' => 'pattern_without_delimiter', + 'byte' => 'byte', + 'binary' => 'binary', + 'date' => 'date', + 'date_time' => 'dateTime', + 'password' => 'password', + 'callback' => 'callback' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); + + +1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject4.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject4.pm new file mode 100644 index 00000000000..a25e8e45157 --- /dev/null +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject4.pm @@ -0,0 +1,186 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +package WWW::OpenAPIClient::Object::InlineObject4; + +require 5.6.0; +use strict; +use warnings; +use utf8; +use JSON qw(decode_json); +use Data::Dumper; +use Module::Runtime qw(use_module); +use Log::Any qw($log); +use Date::Parse; +use DateTime; + + +use base ("Class::Accessor", "Class::Data::Inheritable"); + +# +# +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). Do not edit the class manually. +# REF: https://openapi-generator.tech +# + +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); + +# new plain object +sub new { + my ($class, %args) = @_; + + my $self = bless {}, $class; + + $self->init(%args); + + return $self; +} + +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } +} + +# return perl hash +sub to_hash { + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; +} + +# used by JSON for serialization +sub TO_JSON { + my $self = shift; + my $_data = {}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; + } + } + + return $_data; +} + +# from Perl hashref +sub from_hash { + my ($self, $hash) = @_; + + # loop through attributes and use openapi_types to deserialize the data + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); + my @_array = (); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); + } + $self->{$_key} = \@_array; + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); + } + } + + return $self; +} + +# deserialize non-array data +sub _deserialize { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { + return $data; + } else { # hash(model) + my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; + return $_instance->from_hash($data); + } +} + + + +__PACKAGE__->class_documentation({description => '', + class => 'InlineObject4', + required => [], # TODO +} ); + +__PACKAGE__->method_documentation({ + 'param' => { + datatype => 'string', + base_name => 'param', + description => 'field1', + format => '', + read_only => '', + }, + 'param2' => { + datatype => 'string', + base_name => 'param2', + description => 'field2', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'param' => 'string', + 'param2' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'param' => 'param', + 'param2' => 'param2' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); + + +1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject5.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject5.pm new file mode 100644 index 00000000000..3c483c08458 --- /dev/null +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineObject5.pm @@ -0,0 +1,186 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +package WWW::OpenAPIClient::Object::InlineObject5; + +require 5.6.0; +use strict; +use warnings; +use utf8; +use JSON qw(decode_json); +use Data::Dumper; +use Module::Runtime qw(use_module); +use Log::Any qw($log); +use Date::Parse; +use DateTime; + + +use base ("Class::Accessor", "Class::Data::Inheritable"); + +# +# +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). Do not edit the class manually. +# REF: https://openapi-generator.tech +# + +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); + +# new plain object +sub new { + my ($class, %args) = @_; + + my $self = bless {}, $class; + + $self->init(%args); + + return $self; +} + +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } +} + +# return perl hash +sub to_hash { + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; +} + +# used by JSON for serialization +sub TO_JSON { + my $self = shift; + my $_data = {}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; + } + } + + return $_data; +} + +# from Perl hashref +sub from_hash { + my ($self, $hash) = @_; + + # loop through attributes and use openapi_types to deserialize the data + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); + my @_array = (); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); + } + $self->{$_key} = \@_array; + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); + } + } + + return $self; +} + +# deserialize non-array data +sub _deserialize { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { + return $data; + } else { # hash(model) + my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; + return $_instance->from_hash($data); + } +} + + + +__PACKAGE__->class_documentation({description => '', + class => 'InlineObject5', + required => [], # TODO +} ); + +__PACKAGE__->method_documentation({ + 'additional_metadata' => { + datatype => 'string', + base_name => 'additionalMetadata', + description => 'Additional data to pass to server', + format => '', + read_only => '', + }, + 'required_file' => { + datatype => 'string', + base_name => 'requiredFile', + description => 'file to upload', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'additional_metadata' => 'string', + 'required_file' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'additional_metadata' => 'additionalMetadata', + 'required_file' => 'requiredFile' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); + + +1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineResponseDefault.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineResponseDefault.pm new file mode 100644 index 00000000000..4003f4a126c --- /dev/null +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/InlineResponseDefault.pm @@ -0,0 +1,178 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +package WWW::OpenAPIClient::Object::InlineResponseDefault; + +require 5.6.0; +use strict; +use warnings; +use utf8; +use JSON qw(decode_json); +use Data::Dumper; +use Module::Runtime qw(use_module); +use Log::Any qw($log); +use Date::Parse; +use DateTime; + +use WWW::OpenAPIClient::Object::Foo; + +use base ("Class::Accessor", "Class::Data::Inheritable"); + +# +# +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). Do not edit the class manually. +# REF: https://openapi-generator.tech +# + +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); + +# new plain object +sub new { + my ($class, %args) = @_; + + my $self = bless {}, $class; + + $self->init(%args); + + return $self; +} + +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } +} + +# return perl hash +sub to_hash { + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; +} + +# used by JSON for serialization +sub TO_JSON { + my $self = shift; + my $_data = {}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; + } + } + + return $_data; +} + +# from Perl hashref +sub from_hash { + my ($self, $hash) = @_; + + # loop through attributes and use openapi_types to deserialize the data + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); + my @_array = (); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); + } + $self->{$_key} = \@_array; + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); + } + } + + return $self; +} + +# deserialize non-array data +sub _deserialize { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { + return $data; + } else { # hash(model) + my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; + return $_instance->from_hash($data); + } +} + + + +__PACKAGE__->class_documentation({description => '', + class => 'InlineResponseDefault', + required => [], # TODO +} ); + +__PACKAGE__->method_documentation({ + 'string' => { + datatype => 'Foo', + base_name => 'string', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'string' => 'Foo' +} ); + +__PACKAGE__->attribute_map( { + 'string' => 'string' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); + + +1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/List.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/List.pm index 15fe1d4dab3..19376451af0 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/List.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/List.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,120 +59,119 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'List', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - '_123_list' => { - datatype => 'string', - base_name => '123-list', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - '_123_list' => 'string' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'List', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - '_123_list' => '123-list' - } -); +__PACKAGE__->method_documentation({ + '_123_list' => { + datatype => 'string', + base_name => '123-list', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + '_123_list' => 'string' +} ); + +__PACKAGE__->attribute_map( { + '_123_list' => '123-list' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/MapTest.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/MapTest.pm index 43bbd6ec8c1..1ce0f6a84ba 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/MapTest.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/MapTest.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,9 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use WWW::OpenAPIClient::Object::StringBooleanMap; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -61,147 +59,146 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'MapTest', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'map_map_of_string' => { - datatype => 'HASH[string,HASH[string,string]]', - base_name => 'map_map_of_string', - description => '', - format => '', - read_only => '', - }, - 'map_of_enum_string' => { - datatype => 'HASH[string,string]', - base_name => 'map_of_enum_string', - description => '', - format => '', - read_only => '', - }, - 'direct_map' => { - datatype => 'HASH[string,boolean]', - base_name => 'direct_map', - description => '', - format => '', - read_only => '', - }, - 'indirect_map' => { - datatype => 'StringBooleanMap', - base_name => 'indirect_map', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'map_map_of_string' => 'HASH[string,HASH[string,string]]', - 'map_of_enum_string' => 'HASH[string,string]', - 'direct_map' => 'HASH[string,boolean]', - 'indirect_map' => 'StringBooleanMap' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'MapTest', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'map_map_of_string' => 'map_map_of_string', - 'map_of_enum_string' => 'map_of_enum_string', - 'direct_map' => 'direct_map', - 'indirect_map' => 'indirect_map' - } -); +__PACKAGE__->method_documentation({ + 'map_map_of_string' => { + datatype => 'HASH[string,HASH[string,string]]', + base_name => 'map_map_of_string', + description => '', + format => '', + read_only => '', + }, + 'map_of_enum_string' => { + datatype => 'HASH[string,string]', + base_name => 'map_of_enum_string', + description => '', + format => '', + read_only => '', + }, + 'direct_map' => { + datatype => 'HASH[string,boolean]', + base_name => 'direct_map', + description => '', + format => '', + read_only => '', + }, + 'indirect_map' => { + datatype => 'HASH[string,boolean]', + base_name => 'indirect_map', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'map_map_of_string' => 'HASH[string,HASH[string,string]]', + 'map_of_enum_string' => 'HASH[string,string]', + 'direct_map' => 'HASH[string,boolean]', + 'indirect_map' => 'HASH[string,boolean]' +} ); + +__PACKAGE__->attribute_map( { + 'map_map_of_string' => 'map_map_of_string', + 'map_of_enum_string' => 'map_of_enum_string', + 'direct_map' => 'direct_map', + 'indirect_map' => 'indirect_map' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/MixedPropertiesAndAdditionalPropertiesClass.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/MixedPropertiesAndAdditionalPropertiesClass.pm index 690a897fd2a..2ff6ca7e6e6 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/MixedPropertiesAndAdditionalPropertiesClass.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/MixedPropertiesAndAdditionalPropertiesClass.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -33,7 +32,7 @@ use DateTime; use WWW::OpenAPIClient::Object::Animal; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -61,138 +60,137 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'MixedPropertiesAndAdditionalPropertiesClass', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'uuid' => { - datatype => 'string', - base_name => 'uuid', - description => '', - format => '', - read_only => '', - }, - 'date_time' => { - datatype => 'DateTime', - base_name => 'dateTime', - description => '', - format => '', - read_only => '', - }, - 'map' => { - datatype => 'HASH[string,Animal]', - base_name => 'map', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'uuid' => 'string', - 'date_time' => 'DateTime', - 'map' => 'HASH[string,Animal]' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'MixedPropertiesAndAdditionalPropertiesClass', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'uuid' => 'uuid', - 'date_time' => 'dateTime', - 'map' => 'map' - } -); +__PACKAGE__->method_documentation({ + 'uuid' => { + datatype => 'string', + base_name => 'uuid', + description => '', + format => '', + read_only => '', + }, + 'date_time' => { + datatype => 'DateTime', + base_name => 'dateTime', + description => '', + format => '', + read_only => '', + }, + 'map' => { + datatype => 'HASH[string,Animal]', + base_name => 'map', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'uuid' => 'string', + 'date_time' => 'DateTime', + 'map' => 'HASH[string,Animal]' +} ); + +__PACKAGE__->attribute_map( { + 'uuid' => 'uuid', + 'date_time' => 'dateTime', + 'map' => 'map' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Model200Response.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Model200Response.pm index ddf6ce2b49b..35042df9ac2 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Model200Response.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Model200Response.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # #Model for testing model name starting with number @@ -59,129 +59,128 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => 'Model for testing model name starting with number', - class => 'Model200Response', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'name' => { - datatype => 'int', - base_name => 'name', - description => '', - format => '', - read_only => '', - }, - 'class' => { - datatype => 'string', - base_name => 'class', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'name' => 'int', - 'class' => 'string' - } -); +__PACKAGE__->class_documentation({description => 'Model for testing model name starting with number', + class => 'Model200Response', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'name' => 'name', - 'class' => 'class' - } -); +__PACKAGE__->method_documentation({ + 'name' => { + datatype => 'int', + base_name => 'name', + description => '', + format => '', + read_only => '', + }, + 'class' => { + datatype => 'string', + base_name => 'class', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'name' => 'int', + 'class' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'name' => 'name', + 'class' => 'class' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ModelReturn.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ModelReturn.pm index be6304706e4..f34eb3d341b 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ModelReturn.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ModelReturn.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # #Model for testing reserved words @@ -59,120 +59,119 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => 'Model for testing reserved words', - class => 'ModelReturn', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'return' => { - datatype => 'int', - base_name => 'return', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'return' => 'int' - } -); +__PACKAGE__->class_documentation({description => 'Model for testing reserved words', + class => 'ModelReturn', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'return' => 'return' - } -); +__PACKAGE__->method_documentation({ + 'return' => { + datatype => 'int', + base_name => 'return', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'return' => 'int' +} ); + +__PACKAGE__->attribute_map( { + 'return' => 'return' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Name.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Name.pm index 28263037b06..32d46823dd4 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Name.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Name.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # #Model for testing model name same as property name @@ -59,147 +59,146 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => 'Model for testing model name same as property name', - class => 'Name', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'name' => { - datatype => 'int', - base_name => 'name', - description => '', - format => '', - read_only => '', - }, - 'snake_case' => { - datatype => 'int', - base_name => 'snake_case', - description => '', - format => '', - read_only => '', - }, - 'property' => { - datatype => 'string', - base_name => 'property', - description => '', - format => '', - read_only => '', - }, - '_123_number' => { - datatype => 'int', - base_name => '123Number', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'name' => 'int', - 'snake_case' => 'int', - 'property' => 'string', - '_123_number' => 'int' - } -); +__PACKAGE__->class_documentation({description => 'Model for testing model name same as property name', + class => 'Name', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'name' => 'name', - 'snake_case' => 'snake_case', - 'property' => 'property', - '_123_number' => '123Number' - } -); +__PACKAGE__->method_documentation({ + 'name' => { + datatype => 'int', + base_name => 'name', + description => '', + format => '', + read_only => '', + }, + 'snake_case' => { + datatype => 'int', + base_name => 'snake_case', + description => '', + format => '', + read_only => '', + }, + 'property' => { + datatype => 'string', + base_name => 'property', + description => '', + format => '', + read_only => '', + }, + '_123_number' => { + datatype => 'int', + base_name => '123Number', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'name' => 'int', + 'snake_case' => 'int', + 'property' => 'string', + '_123_number' => 'int' +} ); + +__PACKAGE__->attribute_map( { + 'name' => 'name', + 'snake_case' => 'snake_case', + 'property' => 'property', + '_123_number' => '123Number' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/NumberOnly.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/NumberOnly.pm index f510f275e31..9456ed0f5f8 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/NumberOnly.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/NumberOnly.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,120 +59,119 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'NumberOnly', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'just_number' => { - datatype => 'double', - base_name => 'JustNumber', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'just_number' => 'double' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'NumberOnly', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'just_number' => 'JustNumber' - } -); +__PACKAGE__->method_documentation({ + 'just_number' => { + datatype => 'double', + base_name => 'JustNumber', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'just_number' => 'double' +} ); + +__PACKAGE__->attribute_map( { + 'just_number' => 'JustNumber' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Order.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Order.pm index 5cf212416dd..5ac0dbff5d5 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Order.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Order.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,165 +59,164 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'Order', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'id' => { - datatype => 'int', - base_name => 'id', - description => '', - format => '', - read_only => '', - }, - 'pet_id' => { - datatype => 'int', - base_name => 'petId', - description => '', - format => '', - read_only => '', - }, - 'quantity' => { - datatype => 'int', - base_name => 'quantity', - description => '', - format => '', - read_only => '', - }, - 'ship_date' => { - datatype => 'DateTime', - base_name => 'shipDate', - description => '', - format => '', - read_only => '', - }, - 'status' => { - datatype => 'string', - base_name => 'status', - description => 'Order Status', - format => '', - read_only => '', - }, - 'complete' => { - datatype => 'boolean', - base_name => 'complete', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'id' => 'int', - 'pet_id' => 'int', - 'quantity' => 'int', - 'ship_date' => 'DateTime', - 'status' => 'string', - 'complete' => 'boolean' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'Order', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'id' => 'id', - 'pet_id' => 'petId', - 'quantity' => 'quantity', - 'ship_date' => 'shipDate', - 'status' => 'status', - 'complete' => 'complete' - } -); +__PACKAGE__->method_documentation({ + 'id' => { + datatype => 'int', + base_name => 'id', + description => '', + format => '', + read_only => '', + }, + 'pet_id' => { + datatype => 'int', + base_name => 'petId', + description => '', + format => '', + read_only => '', + }, + 'quantity' => { + datatype => 'int', + base_name => 'quantity', + description => '', + format => '', + read_only => '', + }, + 'ship_date' => { + datatype => 'DateTime', + base_name => 'shipDate', + description => '', + format => '', + read_only => '', + }, + 'status' => { + datatype => 'string', + base_name => 'status', + description => 'Order Status', + format => '', + read_only => '', + }, + 'complete' => { + datatype => 'boolean', + base_name => 'complete', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'id' => 'int', + 'pet_id' => 'int', + 'quantity' => 'int', + 'ship_date' => 'DateTime', + 'status' => 'string', + 'complete' => 'boolean' +} ); + +__PACKAGE__->attribute_map( { + 'id' => 'id', + 'pet_id' => 'petId', + 'quantity' => 'quantity', + 'ship_date' => 'shipDate', + 'status' => 'status', + 'complete' => 'complete' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/OuterComposite.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/OuterComposite.pm index 2fd1f0c90b7..34ab7b2270b 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/OuterComposite.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/OuterComposite.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,138 +59,137 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'OuterComposite', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'my_number' => { - datatype => 'double', - base_name => 'my_number', - description => '', - format => '', - read_only => '', - }, - 'my_string' => { - datatype => 'string', - base_name => 'my_string', - description => '', - format => '', - read_only => '', - }, - 'my_boolean' => { - datatype => 'boolean', - base_name => 'my_boolean', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'my_number' => 'double', - 'my_string' => 'string', - 'my_boolean' => 'boolean' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'OuterComposite', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'my_number' => 'my_number', - 'my_string' => 'my_string', - 'my_boolean' => 'my_boolean' - } -); +__PACKAGE__->method_documentation({ + 'my_number' => { + datatype => 'double', + base_name => 'my_number', + description => '', + format => '', + read_only => '', + }, + 'my_string' => { + datatype => 'string', + base_name => 'my_string', + description => '', + format => '', + read_only => '', + }, + 'my_boolean' => { + datatype => 'boolean', + base_name => 'my_boolean', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'my_number' => 'double', + 'my_string' => 'string', + 'my_boolean' => 'boolean' +} ); + +__PACKAGE__->attribute_map( { + 'my_number' => 'my_number', + 'my_string' => 'my_string', + 'my_boolean' => 'my_boolean' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/OuterEnum.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/OuterEnum.pm index 8971becbd38..4d7817f7235 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/OuterEnum.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/OuterEnum.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,110 +59,112 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'OuterEnum', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( {} ); -__PACKAGE__->openapi_types( - { +__PACKAGE__->class_documentation({description => '', + class => 'OuterEnum', + required => [], # TODO +} ); - } -); +__PACKAGE__->method_documentation({ +}); -__PACKAGE__->attribute_map( - { +__PACKAGE__->openapi_types( { + +} ); - } -); +__PACKAGE__->attribute_map( { + +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Person.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Person.pm new file mode 100644 index 00000000000..f38adcaad3f --- /dev/null +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Person.pm @@ -0,0 +1,222 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +package WWW::OpenAPIClient::Object::Person; + +require 5.6.0; +use strict; +use warnings; +use utf8; +use JSON qw(decode_json); +use Data::Dumper; +use Module::Runtime qw(use_module); +use Log::Any qw($log); +use Date::Parse; +use DateTime; + + +use base ("Class::Accessor", "Class::Data::Inheritable"); + +# +# +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). Do not edit the class manually. +# REF: https://openapi-generator.tech +# + +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +# Do not edit the class manually. +# Ref: https://openapi-generator.tech +# +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); + +# new plain object +sub new { + my ($class, %args) = @_; + + my $self = bless {}, $class; + + $self->init(%args); + + return $self; +} + +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } +} + +# return perl hash +sub to_hash { + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; +} + +# used by JSON for serialization +sub TO_JSON { + my $self = shift; + my $_data = {}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; + } + } + + return $_data; +} + +# from Perl hashref +sub from_hash { + my ($self, $hash) = @_; + + # loop through attributes and use openapi_types to deserialize the data + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); + my @_array = (); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); + } + $self->{$_key} = \@_array; + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); + } + } + + return $self; +} + +# deserialize non-array data +sub _deserialize { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { + return $data; + } else { # hash(model) + my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; + return $_instance->from_hash($data); + } +} + + + +__PACKAGE__->class_documentation({description => '', + class => 'Person', + required => [], # TODO +} ); + +__PACKAGE__->method_documentation({ + '___type' => { + datatype => 'string', + base_name => '$_type', + description => '', + format => '', + read_only => '', + }, + 'last_name' => { + datatype => 'string', + base_name => 'lastName', + description => '', + format => '', + read_only => '', + }, + 'first_name' => { + datatype => 'string', + base_name => 'firstName', + description => '', + format => '', + read_only => '', + }, + 'duplicated_optional' => { + datatype => 'string', + base_name => 'duplicated_optional', + description => '', + format => '', + read_only => '', + }, + 'duplicated_required' => { + datatype => 'string', + base_name => 'duplicated_required', + description => '', + format => '', + read_only => '', + }, + 'person_required' => { + datatype => 'DateTime', + base_name => 'person_required', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + '___type' => 'string', + 'last_name' => 'string', + 'first_name' => 'string', + 'duplicated_optional' => 'string', + 'duplicated_required' => 'string', + 'person_required' => 'DateTime' +} ); + +__PACKAGE__->attribute_map( { + '___type' => '$_type', + 'last_name' => 'lastName', + 'first_name' => 'firstName', + 'duplicated_optional' => 'duplicated_optional', + 'duplicated_required' => 'duplicated_required', + 'person_required' => 'person_required' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); + + +1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Pet.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Pet.pm index a0514b51706..d5a39aaf96f 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Pet.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Pet.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -34,7 +33,7 @@ use DateTime; use WWW::OpenAPIClient::Object::Category; use WWW::OpenAPIClient::Object::Tag; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -62,165 +61,164 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'Pet', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'id' => { - datatype => 'int', - base_name => 'id', - description => '', - format => '', - read_only => '', - }, - 'category' => { - datatype => 'Category', - base_name => 'category', - description => '', - format => '', - read_only => '', - }, - 'name' => { - datatype => 'string', - base_name => 'name', - description => '', - format => '', - read_only => '', - }, - 'photo_urls' => { - datatype => 'ARRAY[string]', - base_name => 'photoUrls', - description => '', - format => '', - read_only => '', - }, - 'tags' => { - datatype => 'ARRAY[Tag]', - base_name => 'tags', - description => '', - format => '', - read_only => '', - }, - 'status' => { - datatype => 'string', - base_name => 'status', - description => 'pet status in the store', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'id' => 'int', - 'category' => 'Category', - 'name' => 'string', - 'photo_urls' => 'ARRAY[string]', - 'tags' => 'ARRAY[Tag]', - 'status' => 'string' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'Pet', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'id' => 'id', - 'category' => 'category', - 'name' => 'name', - 'photo_urls' => 'photoUrls', - 'tags' => 'tags', - 'status' => 'status' - } -); +__PACKAGE__->method_documentation({ + 'id' => { + datatype => 'int', + base_name => 'id', + description => '', + format => '', + read_only => '', + }, + 'category' => { + datatype => 'Category', + base_name => 'category', + description => '', + format => '', + read_only => '', + }, + 'name' => { + datatype => 'string', + base_name => 'name', + description => '', + format => '', + read_only => '', + }, + 'photo_urls' => { + datatype => 'ARRAY[string]', + base_name => 'photoUrls', + description => '', + format => '', + read_only => '', + }, + 'tags' => { + datatype => 'ARRAY[Tag]', + base_name => 'tags', + description => '', + format => '', + read_only => '', + }, + 'status' => { + datatype => 'string', + base_name => 'status', + description => 'pet status in the store', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'id' => 'int', + 'category' => 'Category', + 'name' => 'string', + 'photo_urls' => 'ARRAY[string]', + 'tags' => 'ARRAY[Tag]', + 'status' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'id' => 'id', + 'category' => 'category', + 'name' => 'name', + 'photo_urls' => 'photoUrls', + 'tags' => 'tags', + 'status' => 'status' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ReadOnlyFirst.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ReadOnlyFirst.pm index eff226b18ac..bd82cef0ed4 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ReadOnlyFirst.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/ReadOnlyFirst.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,129 +59,128 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'ReadOnlyFirst', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'bar' => { - datatype => 'string', - base_name => 'bar', - description => '', - format => '', - read_only => '', - }, - 'baz' => { - datatype => 'string', - base_name => 'baz', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'bar' => 'string', - 'baz' => 'string' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'ReadOnlyFirst', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'bar' => 'bar', - 'baz' => 'baz' - } -); +__PACKAGE__->method_documentation({ + 'bar' => { + datatype => 'string', + base_name => 'bar', + description => '', + format => '', + read_only => '', + }, + 'baz' => { + datatype => 'string', + base_name => 'baz', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'bar' => 'string', + 'baz' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'bar' => 'bar', + 'baz' => 'baz' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/SpecialModelName.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/SpecialModelName.pm index 48968ba008e..a9fbbb0b3db 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/SpecialModelName.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/SpecialModelName.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,120 +59,119 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'SpecialModelName', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - '__special[property/name]' => { - datatype => 'int', - base_name => '$special[property.name]', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - '__special[property/name]' => 'int' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'SpecialModelName', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - '__special[property/name]' => '$special[property.name]' - } -); +__PACKAGE__->method_documentation({ + '__special[property/name]' => { + datatype => 'int', + base_name => '$special[property.name]', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + '__special[property/name]' => 'int' +} ); + +__PACKAGE__->attribute_map( { + '__special[property/name]' => '$special[property.name]' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Tag.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Tag.pm index 9f15607bd84..d4182fd2d91 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Tag.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/Tag.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,129 +59,128 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'Tag', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'id' => { - datatype => 'int', - base_name => 'id', - description => '', - format => '', - read_only => '', - }, - 'name' => { - datatype => 'string', - base_name => 'name', - description => '', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'id' => 'int', - 'name' => 'string' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'Tag', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'id' => 'id', - 'name' => 'name' - } -); +__PACKAGE__->method_documentation({ + 'id' => { + datatype => 'int', + base_name => 'id', + description => '', + format => '', + read_only => '', + }, + 'name' => { + datatype => 'string', + base_name => 'name', + description => '', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'id' => 'int', + 'name' => 'string' +} ); + +__PACKAGE__->attribute_map( { + 'id' => 'id', + 'name' => 'name' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/User.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/User.pm index 3712522fbb4..f33f6cb641f 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/User.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Object/User.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -31,7 +30,8 @@ use Log::Any qw($log); use Date::Parse; use DateTime; -use base ( "Class::Accessor", "Class::Data::Inheritable" ); + +use base ("Class::Accessor", "Class::Data::Inheritable"); # # @@ -59,183 +59,182 @@ Generated by: https://openapi-generator.tech # Do not edit the class manually. # Ref: https://openapi-generator.tech # -__PACKAGE__->mk_classdata( 'attribute_map' => {} ); -__PACKAGE__->mk_classdata( 'openapi_types' => {} ); -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); -__PACKAGE__->mk_classdata( 'class_documentation' => {} ); +__PACKAGE__->mk_classdata('attribute_map' => {}); +__PACKAGE__->mk_classdata('openapi_types' => {}); +__PACKAGE__->mk_classdata('method_documentation' => {}); +__PACKAGE__->mk_classdata('class_documentation' => {}); -# new object -sub new { - my ( $class, %args ) = @_; +# new plain object +sub new { + my ($class, %args) = @_; - my $self = bless {}, $class; + my $self = bless {}, $class; - foreach my $attribute ( keys %{ $class->attribute_map } ) { - my $args_key = $class->attribute_map->{$attribute}; - $self->$attribute( $args{$args_key} ); - } + $self->init(%args); + + return $self; +} - return $self; +# initialize the object +sub init +{ + my ($self, %args) = @_; + + foreach my $attribute (keys %{$self->attribute_map}) { + my $args_key = $self->attribute_map->{$attribute}; + $self->$attribute( $args{ $args_key } ); + } } # return perl hash sub to_hash { - return decode_json( JSON->new->convert_blessed->encode(shift) ); + my $self = shift; + my $_hash = decode_json(JSON->new->convert_blessed->encode($self)); + + return $_hash; } # used by JSON for serialization -sub TO_JSON { - my $self = shift; +sub TO_JSON { + my $self = shift; my $_data = {}; - foreach my $_key ( keys %{ $self->attribute_map } ) { - if ( defined $self->{$_key} ) { - $_data->{ $self->attribute_map->{$_key} } = $self->{$_key}; + foreach my $_key (keys %{$self->attribute_map}) { + if (defined $self->{$_key}) { + $_data->{$self->attribute_map->{$_key}} = $self->{$_key}; } } + return $_data; } # from Perl hashref sub from_hash { - my ( $self, $hash ) = @_; + my ($self, $hash) = @_; # loop through attributes and use openapi_types to deserialize the data - while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) { - my $_json_attribute = $self->attribute_map->{$_key}; - if ( $_type =~ /^array\[/i ) { # array - my $_subclass = substr( $_type, 6, -1 ); + while ( my ($_key, $_type) = each %{$self->openapi_types} ) { + my $_json_attribute = $self->attribute_map->{$_key}; + if ($_type =~ /^array\[/i) { # array + my $_subclass = substr($_type, 6, -1); my @_array = (); - foreach my $_element ( @{ $hash->{$_json_attribute} } ) { - push @_array, $self->_deserialize( $_subclass, $_element ); + foreach my $_element (@{$hash->{$_json_attribute}}) { + push @_array, $self->_deserialize($_subclass, $_element); } $self->{$_key} = \@_array; - } - elsif ( exists $hash->{$_json_attribute} ) - { #hash(model), primitive, datetime - $self->{$_key} = - $self->_deserialize( $_type, $hash->{$_json_attribute} ); - } - else { - $log->debugf( "Warning: %s (%s) does not exist in input hash\n", - $_key, $_json_attribute ); + } elsif (exists $hash->{$_json_attribute}) { #hash(model), primitive, datetime + $self->{$_key} = $self->_deserialize($_type, $hash->{$_json_attribute}); + } else { + $log->debugf("Warning: %s (%s) does not exist in input hash\n", $_key, $_json_attribute); } } - + return $self; } # deserialize non-array data sub _deserialize { - my ( $self, $type, $data ) = @_; - $log->debugf( "deserializing %s with %s", Dumper($data), $type ); - - if ( $type eq 'DateTime' ) { - return DateTime->from_epoch( epoch => str2time($data) ); - } - elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) { + my ($self, $type, $data) = @_; + $log->debugf("deserializing %s with %s",Dumper($data), $type); + + if ($type eq 'DateTime') { + return DateTime->from_epoch(epoch => str2time($data)); + } elsif ( grep( /^$type$/, ('int', 'double', 'string', 'boolean'))) { return $data; - } - else { # hash(model) + } else { # hash(model) my $_instance = eval "WWW::OpenAPIClient::Object::$type->new()"; return $_instance->from_hash($data); } } -__PACKAGE__->class_documentation( - { - description => '', - class => 'User', - required => [], # TODO - } -); -__PACKAGE__->method_documentation( - { - 'id' => { - datatype => 'int', - base_name => 'id', - description => '', - format => '', - read_only => '', - }, - 'username' => { - datatype => 'string', - base_name => 'username', - description => '', - format => '', - read_only => '', - }, - 'first_name' => { - datatype => 'string', - base_name => 'firstName', - description => '', - format => '', - read_only => '', - }, - 'last_name' => { - datatype => 'string', - base_name => 'lastName', - description => '', - format => '', - read_only => '', - }, - 'email' => { - datatype => 'string', - base_name => 'email', - description => '', - format => '', - read_only => '', - }, - 'password' => { - datatype => 'string', - base_name => 'password', - description => '', - format => '', - read_only => '', - }, - 'phone' => { - datatype => 'string', - base_name => 'phone', - description => '', - format => '', - read_only => '', - }, - 'user_status' => { - datatype => 'int', - base_name => 'userStatus', - description => 'User Status', - format => '', - read_only => '', - }, - } -); -__PACKAGE__->openapi_types( - { - 'id' => 'int', - 'username' => 'string', - 'first_name' => 'string', - 'last_name' => 'string', - 'email' => 'string', - 'password' => 'string', - 'phone' => 'string', - 'user_status' => 'int' - } -); +__PACKAGE__->class_documentation({description => '', + class => 'User', + required => [], # TODO +} ); -__PACKAGE__->attribute_map( - { - 'id' => 'id', - 'username' => 'username', - 'first_name' => 'firstName', - 'last_name' => 'lastName', - 'email' => 'email', - 'password' => 'password', - 'phone' => 'phone', - 'user_status' => 'userStatus' - } -); +__PACKAGE__->method_documentation({ + 'id' => { + datatype => 'int', + base_name => 'id', + description => '', + format => '', + read_only => '', + }, + 'username' => { + datatype => 'string', + base_name => 'username', + description => '', + format => '', + read_only => '', + }, + 'first_name' => { + datatype => 'string', + base_name => 'firstName', + description => '', + format => '', + read_only => '', + }, + 'last_name' => { + datatype => 'string', + base_name => 'lastName', + description => '', + format => '', + read_only => '', + }, + 'email' => { + datatype => 'string', + base_name => 'email', + description => '', + format => '', + read_only => '', + }, + 'password' => { + datatype => 'string', + base_name => 'password', + description => '', + format => '', + read_only => '', + }, + 'phone' => { + datatype => 'string', + base_name => 'phone', + description => '', + format => '', + read_only => '', + }, + 'user_status' => { + datatype => 'int', + base_name => 'userStatus', + description => 'User Status', + format => '', + read_only => '', + }, +}); + +__PACKAGE__->openapi_types( { + 'id' => 'int', + 'username' => 'string', + 'first_name' => 'string', + 'last_name' => 'string', + 'email' => 'string', + 'password' => 'string', + 'phone' => 'string', + 'user_status' => 'int' +} ); + +__PACKAGE__->attribute_map( { + 'id' => 'id', + 'username' => 'username', + 'first_name' => 'firstName', + 'last_name' => 'lastName', + 'email' => 'email', + 'password' => 'password', + 'phone' => 'phone', + 'user_status' => 'userStatus' +} ); + +__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map}); -__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } ); 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/PetApi.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/PetApi.pm index 9961299544e..e259b194910 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/PetApi.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/PetApi.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -23,7 +22,7 @@ package WWW::OpenAPIClient::PetApi; require 5.6.0; use strict; use warnings; -use utf8; +use utf8; use Exporter; use Carp qw( croak ); use Log::Any qw($log); @@ -32,16 +31,15 @@ use WWW::OpenAPIClient::ApiClient; use base "Class::Data::Inheritable"; -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); +__PACKAGE__->mk_classdata('method_documentation' => {}); sub new { my $class = shift; my $api_client; - if ( $_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::ApiClient' ) { + if ($_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::ApiClient' ) { $api_client = $_[0]; - } - else { + } else { $api_client = WWW::OpenAPIClient::ApiClient->new(@_); } @@ -49,57 +47,55 @@ sub new { } + # # add_pet # # Add a new pet to the store -# +# # @param Pet $pet Pet object that needs to be added to the store (required) { my $params = { - 'pet' => { - data_type => 'Pet', - description => 'Pet object that needs to be added to the store', - required => '1', - }, + 'pet' => { + data_type => 'Pet', + description => 'Pet object that needs to be added to the store', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'add_pet'} = { - summary => 'Add a new pet to the store', - params => $params, + __PACKAGE__->method_documentation->{ 'add_pet' } = { + summary => 'Add a new pet to the store', + params => $params, returns => undef, - }; + }; } - # @return void # sub add_pet { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'pet' is set - unless ( exists $args{'pet'} ) { - croak("Missing the required parameter 'pet' when calling add_pet"); + unless (exists $args{'pet'}) { + croak("Missing the required parameter 'pet' when calling add_pet"); } # parse inputs my $_resource_path = '/pet'; - my $_method = 'POST'; - my $query_params = {}; + my $_method = 'POST'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = $self->{api_client} - ->select_header_content_type( 'application/json', 'application/xml' ); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('application/json', 'application/xml'); my $_body_data; - # body params - if ( exists $args{'pet'} ) { + if ( exists $args{'pet'}) { $_body_data = $args{'pet'}; } @@ -107,10 +103,9 @@ sub add_pet { my $auth_settings = [qw(petstore_auth )]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } @@ -118,79 +113,73 @@ sub add_pet { # delete_pet # # Deletes a pet -# +# # @param int $pet_id Pet id to delete (required) # @param string $api_key (optional) { my $params = { - 'pet_id' => { - data_type => 'int', - description => 'Pet id to delete', - required => '1', - }, - 'api_key' => { - data_type => 'string', - description => '', - required => '0', - }, + 'pet_id' => { + data_type => 'int', + description => 'Pet id to delete', + required => '1', + }, + 'api_key' => { + data_type => 'string', + description => '', + required => '0', + }, }; - __PACKAGE__->method_documentation->{'delete_pet'} = { - summary => 'Deletes a pet', - params => $params, + __PACKAGE__->method_documentation->{ 'delete_pet' } = { + summary => 'Deletes a pet', + params => $params, returns => undef, - }; + }; } - # @return void # sub delete_pet { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'pet_id' is set - unless ( exists $args{'pet_id'} ) { - croak( - "Missing the required parameter 'pet_id' when calling delete_pet"); + unless (exists $args{'pet_id'}) { + croak("Missing the required parameter 'pet_id' when calling delete_pet"); } # parse inputs my $_resource_path = '/pet/{petId}'; - my $_method = 'DELETE'; - my $query_params = {}; + my $_method = 'DELETE'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); # header params - if ( exists $args{'api_key'} ) { - $header_params->{'api_key'} = - $self->{api_client}->to_header_value( $args{'api_key'} ); + if ( exists $args{'api_key'}) { + $header_params->{'api_key'} = $self->{api_client}->to_header_value($args{'api_key'}); } # path params - if ( exists $args{'pet_id'} ) { + if ( exists $args{'pet_id'}) { my $_base_variable = "{" . "petId" . "}"; - my $_base_value = $self->{api_client}->to_path_value( $args{'pet_id'} ); + my $_base_value = $self->{api_client}->to_path_value($args{'pet_id'}); $_resource_path =~ s/$_base_variable/$_base_value/g; } my $_body_data; - # authentication setting, if any my $auth_settings = [qw(petstore_auth )]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } @@ -198,74 +187,64 @@ sub delete_pet { # find_pets_by_status # # Finds Pets by status -# +# # @param ARRAY[string] $status Status values that need to be considered for filter (required) { my $params = { - 'status' => { - data_type => 'ARRAY[string]', - description => - 'Status values that need to be considered for filter', - required => '1', - }, + 'status' => { + data_type => 'ARRAY[string]', + description => 'Status values that need to be considered for filter', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'find_pets_by_status'} = { - summary => 'Finds Pets by status', - params => $params, + __PACKAGE__->method_documentation->{ 'find_pets_by_status' } = { + summary => 'Finds Pets by status', + params => $params, returns => 'ARRAY[Pet]', - }; + }; } - # @return ARRAY[Pet] # sub find_pets_by_status { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'status' is set - unless ( exists $args{'status'} ) { - croak( -"Missing the required parameter 'status' when calling find_pets_by_status" - ); + unless (exists $args{'status'}) { + croak("Missing the required parameter 'status' when calling find_pets_by_status"); } # parse inputs my $_resource_path = '/pet/findByStatus'; - my $_method = 'GET'; - my $query_params = {}; + my $_method = 'GET'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header - my $_header_accept = $self->{api_client} - ->select_header_accept( 'application/xml', 'application/json' ); + my $_header_accept = $self->{api_client}->select_header_accept('application/xml', 'application/json'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); # query params - if ( exists $args{'status'} ) { - $query_params->{'status'} = - $self->{api_client}->to_query_value( $args{'status'} ); + if ( exists $args{'status'}) { + $query_params->{'status'} = $self->{api_client}->to_query_value($args{'status'}); } my $_body_data; - # authentication setting, if any my $auth_settings = [qw(petstore_auth )]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + 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; } @@ -273,73 +252,64 @@ sub find_pets_by_status { # find_pets_by_tags # # Finds Pets by tags -# +# # @param ARRAY[string] $tags Tags to filter by (required) { my $params = { - 'tags' => { - data_type => 'ARRAY[string]', - description => 'Tags to filter by', - required => '1', - }, + 'tags' => { + data_type => 'ARRAY[string]', + description => 'Tags to filter by', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'find_pets_by_tags'} = { - summary => 'Finds Pets by tags', - params => $params, + __PACKAGE__->method_documentation->{ 'find_pets_by_tags' } = { + summary => 'Finds Pets by tags', + params => $params, returns => 'ARRAY[Pet]', - }; + }; } - # @return ARRAY[Pet] # sub find_pets_by_tags { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'tags' is set - unless ( exists $args{'tags'} ) { - croak( -"Missing the required parameter 'tags' when calling find_pets_by_tags" - ); + unless (exists $args{'tags'}) { + croak("Missing the required parameter 'tags' when calling find_pets_by_tags"); } # parse inputs my $_resource_path = '/pet/findByTags'; - my $_method = 'GET'; - my $query_params = {}; + my $_method = 'GET'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header - my $_header_accept = $self->{api_client} - ->select_header_accept( 'application/xml', 'application/json' ); + my $_header_accept = $self->{api_client}->select_header_accept('application/xml', 'application/json'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); # query params - if ( exists $args{'tags'} ) { - $query_params->{'tags'} = - $self->{api_client}->to_query_value( $args{'tags'} ); + if ( exists $args{'tags'}) { + $query_params->{'tags'} = $self->{api_client}->to_query_value($args{'tags'}); } my $_body_data; - # authentication setting, if any my $auth_settings = [qw(petstore_auth )]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + 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; } @@ -347,73 +317,66 @@ sub find_pets_by_tags { # get_pet_by_id # # Find pet by ID -# +# # @param int $pet_id ID of pet to return (required) { my $params = { - 'pet_id' => { - data_type => 'int', - description => 'ID of pet to return', - required => '1', - }, + 'pet_id' => { + data_type => 'int', + description => 'ID of pet to return', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'get_pet_by_id'} = { - summary => 'Find pet by ID', - params => $params, + __PACKAGE__->method_documentation->{ 'get_pet_by_id' } = { + summary => 'Find pet by ID', + params => $params, returns => 'Pet', - }; + }; } - # @return Pet # sub get_pet_by_id { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'pet_id' is set - unless ( exists $args{'pet_id'} ) { - croak( - "Missing the required parameter 'pet_id' when calling get_pet_by_id" - ); + unless (exists $args{'pet_id'}) { + croak("Missing the required parameter 'pet_id' when calling get_pet_by_id"); } # parse inputs my $_resource_path = '/pet/{petId}'; - my $_method = 'GET'; - my $query_params = {}; + my $_method = 'GET'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header - my $_header_accept = $self->{api_client} - ->select_header_accept( 'application/xml', 'application/json' ); + my $_header_accept = $self->{api_client}->select_header_accept('application/xml', 'application/json'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); # path params - if ( exists $args{'pet_id'} ) { + if ( exists $args{'pet_id'}) { my $_base_variable = "{" . "petId" . "}"; - my $_base_value = $self->{api_client}->to_path_value( $args{'pet_id'} ); + my $_base_value = $self->{api_client}->to_path_value($args{'pet_id'}); $_resource_path =~ s/$_base_variable/$_base_value/g; } my $_body_data; - # authentication setting, if any my $auth_settings = [qw(api_key )]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { return; } - my $_response_object = $self->{api_client}->deserialize( 'Pet', $response ); + my $_response_object = $self->{api_client}->deserialize('Pet', $response); return $_response_object; } @@ -421,53 +384,50 @@ sub get_pet_by_id { # update_pet # # Update an existing pet -# +# # @param Pet $pet Pet object that needs to be added to the store (required) { my $params = { - 'pet' => { - data_type => 'Pet', - description => 'Pet object that needs to be added to the store', - required => '1', - }, + 'pet' => { + data_type => 'Pet', + description => 'Pet object that needs to be added to the store', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'update_pet'} = { - summary => 'Update an existing pet', - params => $params, + __PACKAGE__->method_documentation->{ 'update_pet' } = { + summary => 'Update an existing pet', + params => $params, returns => undef, - }; + }; } - # @return void # sub update_pet { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'pet' is set - unless ( exists $args{'pet'} ) { - croak("Missing the required parameter 'pet' when calling update_pet"); + unless (exists $args{'pet'}) { + croak("Missing the required parameter 'pet' when calling update_pet"); } # parse inputs my $_resource_path = '/pet'; - my $_method = 'PUT'; - my $query_params = {}; + my $_method = 'PUT'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = $self->{api_client} - ->select_header_content_type( 'application/json', 'application/xml' ); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('application/json', 'application/xml'); my $_body_data; - # body params - if ( exists $args{'pet'} ) { + if ( exists $args{'pet'}) { $_body_data = $args{'pet'}; } @@ -475,10 +435,9 @@ sub update_pet { my $auth_settings = [qw(petstore_auth )]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } @@ -486,92 +445,84 @@ sub update_pet { # update_pet_with_form # # Updates a pet in the store with form data -# +# # @param int $pet_id ID of pet that needs to be updated (required) # @param string $name Updated name of the pet (optional) # @param string $status Updated status of the pet (optional) { my $params = { - 'pet_id' => { - data_type => 'int', - description => 'ID of pet that needs to be updated', - required => '1', - }, - 'name' => { - data_type => 'string', - description => 'Updated name of the pet', - required => '0', - }, - 'status' => { - data_type => 'string', - description => 'Updated status of the pet', - required => '0', - }, + 'pet_id' => { + data_type => 'int', + description => 'ID of pet that needs to be updated', + required => '1', + }, + 'name' => { + data_type => 'string', + description => 'Updated name of the pet', + required => '0', + }, + 'status' => { + data_type => 'string', + description => 'Updated status of the pet', + required => '0', + }, }; - __PACKAGE__->method_documentation->{'update_pet_with_form'} = { - summary => 'Updates a pet in the store with form data', - params => $params, + __PACKAGE__->method_documentation->{ 'update_pet_with_form' } = { + summary => 'Updates a pet in the store with form data', + params => $params, returns => undef, - }; + }; } - # @return void # sub update_pet_with_form { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'pet_id' is set - unless ( exists $args{'pet_id'} ) { - croak( -"Missing the required parameter 'pet_id' when calling update_pet_with_form" - ); + unless (exists $args{'pet_id'}) { + croak("Missing the required parameter 'pet_id' when calling update_pet_with_form"); } # parse inputs my $_resource_path = '/pet/{petId}'; - my $_method = 'POST'; - my $query_params = {}; + my $_method = 'POST'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = $self->{api_client} - ->select_header_content_type('application/x-www-form-urlencoded'); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('application/x-www-form-urlencoded'); # path params - if ( exists $args{'pet_id'} ) { + if ( exists $args{'pet_id'}) { my $_base_variable = "{" . "petId" . "}"; - my $_base_value = $self->{api_client}->to_path_value( $args{'pet_id'} ); + my $_base_value = $self->{api_client}->to_path_value($args{'pet_id'}); $_resource_path =~ s/$_base_variable/$_base_value/g; } # form params if ( exists $args{'name'} ) { - $form_params->{'name'} = - $self->{api_client}->to_form_value( $args{'name'} ); + $form_params->{'name'} = $self->{api_client}->to_form_value($args{'name'}); } - + # form params if ( exists $args{'status'} ) { - $form_params->{'status'} = - $self->{api_client}->to_form_value( $args{'status'} ); + $form_params->{'status'} = $self->{api_client}->to_form_value($args{'status'}); } - + my $_body_data; - # authentication setting, if any my $auth_settings = [qw(petstore_auth )]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } @@ -579,97 +530,89 @@ sub update_pet_with_form { # upload_file # # uploads an image -# +# # @param int $pet_id ID of pet to update (required) # @param string $additional_metadata Additional data to pass to server (optional) # @param string $file file to upload (optional) { my $params = { - 'pet_id' => { - data_type => 'int', - description => 'ID of pet to update', - required => '1', - }, - 'additional_metadata' => { - data_type => 'string', - description => 'Additional data to pass to server', - required => '0', - }, - 'file' => { - data_type => 'string', - description => 'file to upload', - required => '0', - }, + 'pet_id' => { + data_type => 'int', + description => 'ID of pet to update', + required => '1', + }, + 'additional_metadata' => { + data_type => 'string', + description => 'Additional data to pass to server', + required => '0', + }, + 'file' => { + data_type => 'string', + description => 'file to upload', + required => '0', + }, }; - __PACKAGE__->method_documentation->{'upload_file'} = { - summary => 'uploads an image', - params => $params, + __PACKAGE__->method_documentation->{ 'upload_file' } = { + summary => 'uploads an image', + params => $params, returns => 'ApiResponse', - }; + }; } - # @return ApiResponse # sub upload_file { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'pet_id' is set - unless ( exists $args{'pet_id'} ) { - croak( - "Missing the required parameter 'pet_id' when calling upload_file"); + unless (exists $args{'pet_id'}) { + croak("Missing the required parameter 'pet_id' when calling upload_file"); } # parse inputs my $_resource_path = '/pet/{petId}/uploadImage'; - my $_method = 'POST'; - my $query_params = {}; + my $_method = 'POST'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header - my $_header_accept = - $self->{api_client}->select_header_accept('application/json'); + my $_header_accept = $self->{api_client}->select_header_accept('application/json'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type('multipart/form-data'); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('multipart/form-data'); # path params - if ( exists $args{'pet_id'} ) { + if ( exists $args{'pet_id'}) { my $_base_variable = "{" . "petId" . "}"; - my $_base_value = $self->{api_client}->to_path_value( $args{'pet_id'} ); + my $_base_value = $self->{api_client}->to_path_value($args{'pet_id'}); $_resource_path =~ s/$_base_variable/$_base_value/g; } # form params if ( exists $args{'additional_metadata'} ) { - $form_params->{'additionalMetadata'} = - $self->{api_client}->to_form_value( $args{'additional_metadata'} ); + $form_params->{'additionalMetadata'} = $self->{api_client}->to_form_value($args{'additional_metadata'}); } - + # form params if ( exists $args{'file'} ) { $form_params->{'file'} = [] unless defined $form_params->{'file'}; - push @{ $form_params->{'file'} }, $args{'file'}; - } - + push @{$form_params->{'file'}}, $args{'file'}; + } + my $_body_data; - # authentication setting, if any my $auth_settings = [qw(petstore_auth )]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { return; } - my $_response_object = - $self->{api_client}->deserialize( 'ApiResponse', $response ); + my $_response_object = $self->{api_client}->deserialize('ApiResponse', $response); return $_response_object; } @@ -677,106 +620,94 @@ sub upload_file { # upload_file_with_required_file # # uploads an image (required) -# +# # @param int $pet_id ID of pet to update (required) # @param string $required_file file to upload (required) # @param string $additional_metadata Additional data to pass to server (optional) { my $params = { - 'pet_id' => { - data_type => 'int', - description => 'ID of pet to update', - required => '1', - }, - 'required_file' => { - data_type => 'string', - description => 'file to upload', - required => '1', - }, - 'additional_metadata' => { - data_type => 'string', - description => 'Additional data to pass to server', - required => '0', - }, + 'pet_id' => { + data_type => 'int', + description => 'ID of pet to update', + required => '1', + }, + 'required_file' => { + data_type => 'string', + description => 'file to upload', + required => '1', + }, + 'additional_metadata' => { + data_type => 'string', + description => 'Additional data to pass to server', + required => '0', + }, }; - __PACKAGE__->method_documentation->{'upload_file_with_required_file'} = { - summary => 'uploads an image (required)', - params => $params, + __PACKAGE__->method_documentation->{ 'upload_file_with_required_file' } = { + summary => 'uploads an image (required)', + params => $params, returns => 'ApiResponse', - }; + }; } - # @return ApiResponse # sub upload_file_with_required_file { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'pet_id' is set - unless ( exists $args{'pet_id'} ) { - croak( -"Missing the required parameter 'pet_id' when calling upload_file_with_required_file" - ); + unless (exists $args{'pet_id'}) { + croak("Missing the required parameter 'pet_id' when calling upload_file_with_required_file"); } # verify the required parameter 'required_file' is set - unless ( exists $args{'required_file'} ) { - croak( -"Missing the required parameter 'required_file' when calling upload_file_with_required_file" - ); + unless (exists $args{'required_file'}) { + croak("Missing the required parameter 'required_file' when calling upload_file_with_required_file"); } # parse inputs my $_resource_path = '/fake/{petId}/uploadImageWithRequiredFile'; - my $_method = 'POST'; - my $query_params = {}; + my $_method = 'POST'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header - my $_header_accept = - $self->{api_client}->select_header_accept('application/json'); + my $_header_accept = $self->{api_client}->select_header_accept('application/json'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type('multipart/form-data'); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type('multipart/form-data'); # path params - if ( exists $args{'pet_id'} ) { + if ( exists $args{'pet_id'}) { my $_base_variable = "{" . "petId" . "}"; - my $_base_value = $self->{api_client}->to_path_value( $args{'pet_id'} ); + my $_base_value = $self->{api_client}->to_path_value($args{'pet_id'}); $_resource_path =~ s/$_base_variable/$_base_value/g; } # form params if ( exists $args{'additional_metadata'} ) { - $form_params->{'additionalMetadata'} = - $self->{api_client}->to_form_value( $args{'additional_metadata'} ); + $form_params->{'additionalMetadata'} = $self->{api_client}->to_form_value($args{'additional_metadata'}); } - + # form params if ( exists $args{'required_file'} ) { - $form_params->{'requiredFile'} = [] - unless defined $form_params->{'requiredFile'}; - push @{ $form_params->{'requiredFile'} }, $args{'required_file'}; - } - + $form_params->{'requiredFile'} = [] unless defined $form_params->{'requiredFile'}; + push @{$form_params->{'requiredFile'}}, $args{'required_file'}; + } + my $_body_data; - # authentication setting, if any my $auth_settings = [qw(petstore_auth )]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { return; } - my $_response_object = - $self->{api_client}->deserialize( 'ApiResponse', $response ); + my $_response_object = $self->{api_client}->deserialize('ApiResponse', $response); return $_response_object; } diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Role.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Role.pm index aa58fdae4b0..aeaffd41547 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Role.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Role.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -27,108 +26,87 @@ use Class::Inspector; use Log::Any qw($log); use WWW::OpenAPIClient::ApiFactory; -has base_url => ( - is => 'ro', - required => 0, - isa => 'Str', - documentation => 'Root of the server that requests are sent to', -); +has base_url => ( is => 'ro', + required => 0, + isa => 'Str', + documentation => 'Root of the server that requests are sent to', + ); -has api_factory => ( - is => 'ro', - isa => 'WWW::OpenAPIClient::ApiFactory', - builder => '_build_af', - lazy => 1, - documentation => 'Builds an instance of the endpoint API class', -); +has api_factory => ( is => 'ro', + isa => 'WWW::OpenAPIClient::ApiFactory', + builder => '_build_af', + lazy => 1, + documentation => 'Builds an instance of the endpoint API class', + ); -has tokens => ( - is => 'ro', - isa => 'HashRef', - required => 0, - default => sub { {} }, - documentation => -'The auth tokens required by the application - basic, OAuth and/or API key(s)', -); +has tokens => ( is => 'ro', + isa => 'HashRef', + required => 0, + default => sub { {} }, + documentation => 'The auth tokens required by the application - basic, OAuth and/or API key(s)', + ); -has _cfg => ( - is => 'ro', - isa => 'WWW::OpenAPIClient::Configuration', - default => sub { WWW::OpenAPIClient::Configuration->new() }, -); +has _cfg => ( is => 'ro', + isa => 'WWW::OpenAPIClient::Configuration', + default => sub { WWW::OpenAPIClient::Configuration->new() }, + ); -has version_info => ( - is => 'ro', - isa => 'HashRef', - default => sub { - { - app_name => 'OpenAPI Petstore', - app_version => '1.0.0', - generator_class => - 'org.openapitools.codegen.languages.PerlClientCodegen', - } - }, - documentation => -'Information about the application version and the codegen codebase version' -); +has version_info => ( is => 'ro', + isa => 'HashRef', + default => sub { { + app_name => 'OpenAPI Petstore', + app_version => '1.0.0', + generator_class => 'org.openapitools.codegen.languages.PerlClientCodegen', + } }, + documentation => 'Information about the application version and the codegen codebase version' + ); sub BUILD { - my $self = shift; + my $self = shift; - $self->_cfg->accept_tokens( $self->tokens ) if keys %{ $self->tokens }; + $self->_cfg->accept_tokens( $self->tokens ) if keys %{$self->tokens}; - # ignore these symbols imported into API namespaces - my %outsiders = map { $_ => 1 } qw( croak ); + # ignore these symbols imported into API namespaces + my %outsiders = map {$_ => 1} qw( croak ); - my %delegates; + my %delegates; - # collect the methods callable on each API - foreach my $api_name ( $self->api_factory->apis_available ) { - my $api_class = $self->api_factory->classname_for($api_name); - my $methods = Class::Inspector->methods( $api_class, 'expanded' ) - ; # not Moose, so use CI instead - my @local_methods = - grep { !/^_/ } - grep { !$outsiders{$_} } - map { $_->[2] } grep { $_->[1] eq $api_class } @$methods; - push( - @{ $delegates{$_} }, - { api_name => $api_name, api_class => $api_class } - ) for @local_methods; - } + # collect the methods callable on each API + foreach my $api_name ($self->api_factory->apis_available) { + my $api_class = $self->api_factory->classname_for($api_name); + my $methods = Class::Inspector->methods($api_class, 'expanded'); # not Moose, so use CI instead + my @local_methods = grep {! /^_/} grep {! $outsiders{$_}} map {$_->[2]} grep {$_->[1] eq $api_class} @$methods; + push( @{$delegates{$_}}, {api_name => $api_name, api_class => $api_class} ) for @local_methods; + } - # remove clashes - foreach my $method ( keys %delegates ) { - if ( @{ $delegates{$method} } > 1 ) { - my ($apis) = delete $delegates{$method}; - } - } + # remove clashes + foreach my $method (keys %delegates) { + if ( @{$delegates{$method}} > 1 ) { + my ($apis) = delete $delegates{$method}; + } + } # build the flattened API - foreach my $api_name ( $self->api_factory->apis_available ) { + foreach my $api_name ($self->api_factory->apis_available) { my $att_name = sprintf "%s_api", lc($api_name); my $api_class = $self->api_factory->classname_for($api_name); - my @delegated = - grep { $delegates{$_}->[0]->{api_name} eq $api_name } keys %delegates; - $log->debugf( "Adding API: '%s' handles %s", - $att_name, join ', ', @delegated ); - $self->meta->add_attribute( - $att_name => ( - is => 'ro', - isa => $api_class, - default => sub { $self->api_factory->get_api($api_name) }, - lazy => 1, - handles => \@delegated, - ) - ); + my @delegated = grep { $delegates{$_}->[0]->{api_name} eq $api_name } keys %delegates; + $log->debugf("Adding API: '%s' handles %s", $att_name, join ', ', @delegated); + $self->meta->add_attribute( $att_name => ( + is => 'ro', + isa => $api_class, + default => sub {$self->api_factory->get_api($api_name)}, + lazy => 1, + handles => \@delegated, + ) ); } } sub _build_af { - my $self = shift; - my %args; - $args{base_url} = $self->base_url if $self->base_url; - return WWW::OpenAPIClient::ApiFactory->new(%args); + my $self = shift; + my %args; + $args{base_url} = $self->base_url if $self->base_url; + return WWW::OpenAPIClient::ApiFactory->new(%args); } =head1 NAME diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Role/AutoDoc.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Role/AutoDoc.pm index a9c82e1644a..03bcc0b9eee 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Role/AutoDoc.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/Role/AutoDoc.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -24,57 +23,56 @@ use List::MoreUtils qw(uniq); use Moose::Role; sub autodoc { - my ( $self, $how ) = @_; - - die "Unknown format '$how'" unless $how =~ /^(pod|wide|narrow)$/; - - $self->_printisa($how); - $self->_printmethods($how); - $self->_printattrs($how); - print "\n"; + my ($self, $how) = @_; + + die "Unknown format '$how'" unless $how =~ /^(pod|wide|narrow)$/; + + $self->_printisa($how); + $self->_printmethods($how); + $self->_printattrs($how); + print "\n"; } sub _printisa { - my ( $self, $how ) = @_; - my $meta = $self->meta; + my ($self, $how) = @_; + my $meta = $self->meta; + + my $myclass = ref $self; + + my $super = join ', ', $meta->superclasses; + my @roles = $meta->calculate_all_roles; + #shift(@roles) if @roles > 1; # if > 1, the first is a composite, the rest are the roles - my $myclass = ref $self; - - my $super = join ', ', $meta->superclasses; - my @roles = $meta->calculate_all_roles; - -#shift(@roles) if @roles > 1; # if > 1, the first is a composite, the rest are the roles - - my $isa = join ', ', grep { $_ ne $myclass } $meta->linearized_isa; - my $sub = join ', ', $meta->subclasses; - my $dsub = join ', ', $meta->direct_subclasses; - - my $app_name = $self->version_info->{app_name}; - my $app_version = $self->version_info->{app_version}; - my $generated_date = $self->version_info->{generated_date}; + my $isa = join ', ', grep {$_ ne $myclass} $meta->linearized_isa; + my $sub = join ', ', $meta->subclasses; + my $dsub = join ', ', $meta->direct_subclasses; + + my $app_name = $self->version_info->{app_name}; + my $app_version = $self->version_info->{app_version}; + my $generated_date = $self->version_info->{generated_date}; my $generator_class = $self->version_info->{generator_class}; $~ = $how eq 'pod' ? 'INHERIT_POD' : 'INHERIT'; write; - - my ( $rolepkg, $role_reqs ); - - foreach my $role (@roles) { - $rolepkg = $role->{package} || next; # some are anonymous, or something - next if $rolepkg eq 'WWW::OpenAPIClient::Role::AutoDoc'; - $role_reqs = join ', ', keys %{ $role->{required_methods} }; - $role_reqs ||= ''; - $~ = $how eq 'pod' ? 'ROLES_POD' : 'ROLES'; - write; - } - - if ( $how eq 'pod' ) { - $~ = 'ROLES_POD_CLOSE'; - write; - } - - # ----- format specs ----- - format INHERIT = + + my ($rolepkg, $role_reqs); + + foreach my $role (@roles) { + $rolepkg = $role->{package} || next; # some are anonymous, or something + next if $rolepkg eq 'WWW::OpenAPIClient::Role::AutoDoc'; + $role_reqs = join ', ', keys %{$role->{required_methods}}; + $role_reqs ||= ''; + $~ = $how eq 'pod' ? 'ROLES_POD' : 'ROLES'; + write; + } + + if ($how eq 'pod') { + $~ = 'ROLES_POD_CLOSE'; + write; + } + +# ----- format specs ----- + format INHERIT = @* - $myclass @@ -93,7 +91,7 @@ $myclass $generator_class . - format ROLES = + format ROLES = Composes: ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ~ $rolepkg requires: ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ~ @@ -102,7 +100,7 @@ $myclass $role_reqs . - format INHERIT_POD = + format INHERIT_POD = =head1 NAME @* @@ -153,7 +151,7 @@ $myclass . - format ROLES_POD = + format ROLES_POD = =head2 C<@*> $rolepkg @@ -163,108 +161,104 @@ Requires: $role_reqs . - format ROLES_POD_CLOSE = + format ROLES_POD_CLOSE = . - - # ----- / format specs ----- +# ----- / format specs ----- } sub _printmethods { - my ( $self, $how ) = @_; - - if ( $how eq 'narrow' ) { - print <_printmethod($_, $how) for uniq sort $self->meta->get_all_method_names; #$self->meta->get_method_list, + + if ($how eq 'pod') { + $~ = 'METHOD_POD_CLOSE'; + write; + } - $self->_printmethod( $_, $how ) - for uniq - sort $self->meta->get_all_method_names; #$self->meta->get_method_list, - - if ( $how eq 'pod' ) { - $~ = 'METHOD_POD_CLOSE'; - write; - } } sub _printmethod { - my ( $self, $methodname, $how ) = @_; - return if $methodname =~ /^_/; - return if $self->meta->has_attribute($methodname); - my %internal = map { $_ => 1 } - qw(BUILD BUILDARGS meta can new DEMOLISHALL DESTROY - DOES isa BUILDALL does VERSION dump - ); - return if $internal{$methodname}; - my $method = $self->meta->get_method($methodname) - or return; # symbols imported into namespaces i.e. not known by Moose - - return if $method->original_package_name eq __PACKAGE__; - - my $delegate_to = ''; - my $via = ''; - my $on = ''; - my $doc = ''; - my $original_pkg = $method->original_package_name; - if ( $method->can('associated_attribute') ) { - $delegate_to = $method->delegate_to_method; - my $aa = $method->associated_attribute; - $on = $aa->{isa}; - $via = $aa->{name}; - $original_pkg = $on; - $doc = $original_pkg->method_documentation->{$delegate_to}->{summary}; - } - else { - $doc = $method->documentation; - } - - if ( $how eq 'narrow' ) { - $~ = 'METHOD_NARROW'; - write; - } - elsif ( $how eq 'pod' and $delegate_to ) { - $~ = 'METHOD_POD_DELEGATED'; - write; - } - elsif ( $how eq 'pod' ) { - $~ = 'METHOD_POD'; - write; - } - else { - $~ = 'METHOD'; - write; - } - - # ----- format specs ----- - format METHODHEAD = + my ($self, $methodname, $how) = @_; + return if $methodname =~ /^_/; + return if $self->meta->has_attribute($methodname); + my %internal = map {$_ => 1} qw(BUILD BUILDARGS meta can new DEMOLISHALL DESTROY + DOES isa BUILDALL does VERSION dump + ); + return if $internal{$methodname}; + my $method = $self->meta->get_method($methodname) or return; # symbols imported into namespaces i.e. not known by Moose + + return if $method->original_package_name eq __PACKAGE__; + + my $delegate_to = ''; + my $via = ''; + my $on = ''; + my $doc = ''; + my $original_pkg = $method->original_package_name; + if ($method->can('associated_attribute')) { + $delegate_to = $method->delegate_to_method; + my $aa = $method->associated_attribute; + $on = $aa->{isa}; + $via = $aa->{name}; + $original_pkg = $on; + $doc = $original_pkg->method_documentation->{$delegate_to}->{summary}; + } + else { + $doc = $method->documentation; + } + + if ($how eq 'narrow') { + $~ = 'METHOD_NARROW'; + write; + } + elsif ($how eq 'pod' and $delegate_to) { + $~ = 'METHOD_POD_DELEGATED'; + write; + } + elsif ($how eq 'pod') { + $~ = 'METHOD_POD'; + write; + } + else { + $~ = 'METHOD'; + write; + } + +# ----- format specs ----- + format METHODHEAD = METHODS ------- Name delegates to on via =========================================================================================================================================================================== . - format METHOD = + format METHOD = @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<... @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<... @<<<<<<<<<<<<<<<<... $methodname, $delegate_to, $on, $via . - format METHOD_NARROW = + format METHOD_NARROW = @* $methodname original pkg: @* @@ -278,13 +272,13 @@ $methodname . - format METHODHEAD_POD = + format METHODHEAD_POD = =head1 METHODS . - - format METHOD_POD = + + format METHOD_POD = =head2 C<@*()> $methodname @@ -294,7 +288,7 @@ $methodname . - format METHOD_POD_DELEGATED = + format METHOD_POD_DELEGATED = =head2 C<@*()> $methodname @@ -313,96 +307,90 @@ $methodname $via, $delegate_to . - format METHOD_POD_CLOSE = + format METHOD_POD_CLOSE = . - - # ----- / format specs ----- +# ----- / format specs ----- } sub _printattrs { - my ( $self, $how ) = @_; - - if ( $how eq 'narrow' ) { - print <_printattr( $_, $how ) for sort $self->meta->get_attribute_list; - - if ( $how eq 'pod' ) { - $~ = 'ATTR_POD_CLOSE'; - write; - } + } + elsif ($how eq 'wide') { + $~ = 'ATTRHEAD'; + write; + } + elsif ($how eq 'pod') { + $~ = 'ATTRHEAD_POD'; + write; + } + else { + die "Don't know how to print attributes '$how'"; + } + + $self->_printattr($_, $how) for sort $self->meta->get_attribute_list; + + if ($how eq 'pod') { + $~ = 'ATTR_POD_CLOSE'; + write; + } } sub _printattr { - my ( $self, $attrname, $how ) = @_; - return if $attrname =~ /^_/; - my $attr = $self->meta->get_attribute($attrname) - or die "No attr for $attrname"; + my ($self, $attrname, $how) = @_; + return if $attrname =~ /^_/; + my $attr = $self->meta->get_attribute($attrname) or die "No attr for $attrname"; + + my $is; + $is = 'rw' if $attr->get_read_method && $attr->get_write_method; + $is = 'ro' if $attr->get_read_method && ! $attr->get_write_method; + $is = 'wo' if $attr->get_write_method && ! $attr->get_read_method; + $is = '--' if ! $attr->get_write_method && ! $attr->get_read_method; + $is or die "No \$is for $attrname"; + + my $tc = $attr->type_constraint || ''; + my $from = $attr->associated_class->name || ''; + my $reqd = $attr->is_required ? 'yes' : 'no'; + my $lazy = $attr->is_lazy ? 'yes' : 'no'; + my $has_doc = $attr->has_documentation ? 'yes' : 'no'; # *_api attributes will never have doc, but other attributes might have + my $doc = $attr->documentation || ''; + my $handles = join ', ', sort @{$attr->handles || []}; + $handles ||= ''; + + if ($how eq 'narrow') { + $~ = 'ATTR_NARROW'; + } + elsif ($how eq 'pod') { + $~ = 'ATTR_POD'; + } + else { + $~ = 'ATTR'; + } - my $is; - $is = 'rw' if $attr->get_read_method && $attr->get_write_method; - $is = 'ro' if $attr->get_read_method && !$attr->get_write_method; - $is = 'wo' if $attr->get_write_method && !$attr->get_read_method; - $is = '--' if !$attr->get_write_method && !$attr->get_read_method; - $is or die "No \$is for $attrname"; + write; - my $tc = $attr->type_constraint || ''; - my $from = $attr->associated_class->name || ''; - my $reqd = $attr->is_required ? 'yes' : 'no'; - my $lazy = $attr->is_lazy ? 'yes' : 'no'; - my $has_doc = - $attr->has_documentation - ? 'yes' - : 'no' - ; # *_api attributes will never have doc, but other attributes might have - my $doc = $attr->documentation || ''; - my $handles = join ', ', sort @{ $attr->handles || [] }; - $handles ||= ''; - - if ( $how eq 'narrow' ) { - $~ = 'ATTR_NARROW'; - } - elsif ( $how eq 'pod' ) { - $~ = 'ATTR_POD'; - } - else { - $~ = 'ATTR'; - } - - write; - - # ----- format specs ----- - format ATTRHEAD = +# ----- format specs ----- + format ATTRHEAD = ATTRIBUTES ---------- Name is isa reqd lazy doc handles ============================================================================================================== . - format ATTR = + format ATTR = @<<<<<<<<<<<<<<<<< @< @<<<<<<<<<<<<<<<<<<<<<<<< @<<< @<<< @<< ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $attrname, $is, $tc, $reqd, $lazy, $has_doc, $handles ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ~~ $handles . - format ATTR_NARROW = + format ATTR_NARROW = @* $attrname is: @* @@ -421,11 +409,11 @@ $attrname $handles . - format ATTRHEAD_POD = + format ATTRHEAD_POD = =head1 ATTRIBUTES . - format ATTR_POD = + format ATTR_POD = =head2 C<@*> $attrname @@ -446,12 +434,13 @@ $attrname $handles . - format ATTR_POD_CLOSE = + format ATTR_POD_CLOSE = . - - # ----- / format specs ----- +# ----- / format specs ----- } + + 1; diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/StoreApi.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/StoreApi.pm index e38450e14df..3ffb3283251 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/StoreApi.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/StoreApi.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -23,7 +22,7 @@ package WWW::OpenAPIClient::StoreApi; require 5.6.0; use strict; use warnings; -use utf8; +use utf8; use Exporter; use Carp qw( croak ); use Log::Any qw($log); @@ -32,16 +31,15 @@ use WWW::OpenAPIClient::ApiClient; use base "Class::Data::Inheritable"; -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); +__PACKAGE__->mk_classdata('method_documentation' => {}); sub new { my $class = shift; my $api_client; - if ( $_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::ApiClient' ) { + if ($_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::ApiClient' ) { $api_client = $_[0]; - } - else { + } else { $api_client = WWW::OpenAPIClient::ApiClient->new(@_); } @@ -49,73 +47,67 @@ sub new { } + # # delete_order # # Delete purchase order by ID -# +# # @param string $order_id ID of the order that needs to be deleted (required) { my $params = { - 'order_id' => { - data_type => 'string', - description => 'ID of the order that needs to be deleted', - required => '1', - }, + 'order_id' => { + data_type => 'string', + description => 'ID of the order that needs to be deleted', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'delete_order'} = { - summary => 'Delete purchase order by ID', - params => $params, + __PACKAGE__->method_documentation->{ 'delete_order' } = { + summary => 'Delete purchase order by ID', + params => $params, returns => undef, - }; + }; } - # @return void # sub delete_order { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'order_id' is set - unless ( exists $args{'order_id'} ) { - croak( -"Missing the required parameter 'order_id' when calling delete_order" - ); + unless (exists $args{'order_id'}) { + croak("Missing the required parameter 'order_id' when calling delete_order"); } # parse inputs my $_resource_path = '/store/order/{order_id}'; - my $_method = 'DELETE'; - my $query_params = {}; + my $_method = 'DELETE'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); # path params - if ( exists $args{'order_id'} ) { + if ( exists $args{'order_id'}) { my $_base_variable = "{" . "order_id" . "}"; - my $_base_value = - $self->{api_client}->to_path_value( $args{'order_id'} ); + my $_base_value = $self->{api_client}->to_path_value($args{'order_id'}); $_resource_path =~ s/$_base_variable/$_base_value/g; } my $_body_data; - # authentication setting, if any my $auth_settings = [qw()]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } @@ -123,53 +115,48 @@ sub delete_order { # get_inventory # # Returns pet inventories by status -# +# { - my $params = {}; - __PACKAGE__->method_documentation->{'get_inventory'} = { - summary => 'Returns pet inventories by status', - params => $params, - returns => 'HASH[string,int]', + my $params = { }; + __PACKAGE__->method_documentation->{ 'get_inventory' } = { + summary => 'Returns pet inventories by status', + params => $params, + returns => 'HASH[string,int]', + }; } - # @return HASH[string,int] # sub get_inventory { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # parse inputs my $_resource_path = '/store/inventory'; - my $_method = 'GET'; - my $query_params = {}; + my $_method = 'GET'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header - my $_header_accept = - $self->{api_client}->select_header_accept('application/json'); + my $_header_accept = $self->{api_client}->select_header_accept('application/json'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); my $_body_data; - # authentication setting, if any my $auth_settings = [qw(api_key )]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { return; } - my $_response_object = - $self->{api_client}->deserialize( 'HASH[string,int]', $response ); + my $_response_object = $self->{api_client}->deserialize('HASH[string,int]', $response); return $_response_object; } @@ -177,75 +164,66 @@ sub get_inventory { # get_order_by_id # # Find purchase order by ID -# +# # @param int $order_id ID of pet that needs to be fetched (required) { my $params = { - 'order_id' => { - data_type => 'int', - description => 'ID of pet that needs to be fetched', - required => '1', - }, + 'order_id' => { + data_type => 'int', + description => 'ID of pet that needs to be fetched', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'get_order_by_id'} = { - summary => 'Find purchase order by ID', - params => $params, + __PACKAGE__->method_documentation->{ 'get_order_by_id' } = { + summary => 'Find purchase order by ID', + params => $params, returns => 'Order', - }; + }; } - # @return Order # sub get_order_by_id { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'order_id' is set - unless ( exists $args{'order_id'} ) { - croak( -"Missing the required parameter 'order_id' when calling get_order_by_id" - ); + unless (exists $args{'order_id'}) { + croak("Missing the required parameter 'order_id' when calling get_order_by_id"); } # parse inputs my $_resource_path = '/store/order/{order_id}'; - my $_method = 'GET'; - my $query_params = {}; + my $_method = 'GET'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header - my $_header_accept = $self->{api_client} - ->select_header_accept( 'application/xml', 'application/json' ); + my $_header_accept = $self->{api_client}->select_header_accept('application/xml', 'application/json'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); # path params - if ( exists $args{'order_id'} ) { + if ( exists $args{'order_id'}) { my $_base_variable = "{" . "order_id" . "}"; - my $_base_value = - $self->{api_client}->to_path_value( $args{'order_id'} ); + my $_base_value = $self->{api_client}->to_path_value($args{'order_id'}); $_resource_path =~ s/$_base_variable/$_base_value/g; } my $_body_data; - # authentication setting, if any my $auth_settings = [qw()]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { return; } - my $_response_object = - $self->{api_client}->deserialize( 'Order', $response ); + my $_response_object = $self->{api_client}->deserialize('Order', $response); return $_response_object; } @@ -253,55 +231,50 @@ sub get_order_by_id { # place_order # # Place an order for a pet -# +# # @param Order $order order placed for purchasing the pet (required) { my $params = { - 'order' => { - data_type => 'Order', - description => 'order placed for purchasing the pet', - required => '1', - }, + 'order' => { + data_type => 'Order', + description => 'order placed for purchasing the pet', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'place_order'} = { - summary => 'Place an order for a pet', - params => $params, + __PACKAGE__->method_documentation->{ 'place_order' } = { + summary => 'Place an order for a pet', + params => $params, returns => 'Order', - }; + }; } - # @return Order # sub place_order { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'order' is set - unless ( exists $args{'order'} ) { - croak( - "Missing the required parameter 'order' when calling place_order"); + unless (exists $args{'order'}) { + croak("Missing the required parameter 'order' when calling place_order"); } # parse inputs my $_resource_path = '/store/order'; - my $_method = 'POST'; - my $query_params = {}; + my $_method = 'POST'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header - my $_header_accept = $self->{api_client} - ->select_header_accept( 'application/xml', 'application/json' ); + my $_header_accept = $self->{api_client}->select_header_accept('application/xml', 'application/json'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); my $_body_data; - # body params - if ( exists $args{'order'} ) { + if ( exists $args{'order'}) { $_body_data = $args{'order'}; } @@ -309,15 +282,13 @@ sub place_order { my $auth_settings = [qw()]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { return; } - my $_response_object = - $self->{api_client}->deserialize( 'Order', $response ); + my $_response_object = $self->{api_client}->deserialize('Order', $response); return $_response_object; } diff --git a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/UserApi.pm b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/UserApi.pm index cbcc5df92e3..c9aa7fe6d8b 100644 --- a/samples/client/petstore/perl/lib/WWW/OpenAPIClient/UserApi.pm +++ b/samples/client/petstore/perl/lib/WWW/OpenAPIClient/UserApi.pm @@ -1,4 +1,3 @@ - =begin comment OpenAPI Petstore @@ -23,7 +22,7 @@ package WWW::OpenAPIClient::UserApi; require 5.6.0; use strict; use warnings; -use utf8; +use utf8; use Exporter; use Carp qw( croak ); use Log::Any qw($log); @@ -32,16 +31,15 @@ use WWW::OpenAPIClient::ApiClient; use base "Class::Data::Inheritable"; -__PACKAGE__->mk_classdata( 'method_documentation' => {} ); +__PACKAGE__->mk_classdata('method_documentation' => {}); sub new { my $class = shift; my $api_client; - if ( $_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::ApiClient' ) { + if ($_[0] && ref $_[0] && ref $_[0] eq 'WWW::OpenAPIClient::ApiClient' ) { $api_client = $_[0]; - } - else { + } else { $api_client = WWW::OpenAPIClient::ApiClient->new(@_); } @@ -49,57 +47,55 @@ sub new { } + # # create_user # # Create user -# +# # @param User $user Created user object (required) { my $params = { - 'user' => { - data_type => 'User', - description => 'Created user object', - required => '1', - }, + 'user' => { + data_type => 'User', + description => 'Created user object', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'create_user'} = { - summary => 'Create user', - params => $params, + __PACKAGE__->method_documentation->{ 'create_user' } = { + summary => 'Create user', + params => $params, returns => undef, - }; + }; } - # @return void # sub create_user { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'user' is set - unless ( exists $args{'user'} ) { - croak("Missing the required parameter 'user' when calling create_user"); + unless (exists $args{'user'}) { + croak("Missing the required parameter 'user' when calling create_user"); } # parse inputs my $_resource_path = '/user'; - my $_method = 'POST'; - my $query_params = {}; + my $_method = 'POST'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); my $_body_data; - # body params - if ( exists $args{'user'} ) { + if ( exists $args{'user'}) { $_body_data = $args{'user'}; } @@ -107,10 +103,9 @@ sub create_user { my $auth_settings = [qw()]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } @@ -118,55 +113,50 @@ sub create_user { # create_users_with_array_input # # Creates list of users with given input array -# +# # @param ARRAY[User] $user List of user object (required) { my $params = { - 'user' => { - data_type => 'ARRAY[User]', - description => 'List of user object', - required => '1', - }, + 'user' => { + data_type => 'ARRAY[User]', + description => 'List of user object', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'create_users_with_array_input'} = { - summary => 'Creates list of users with given input array', - params => $params, + __PACKAGE__->method_documentation->{ 'create_users_with_array_input' } = { + summary => 'Creates list of users with given input array', + params => $params, returns => undef, - }; + }; } - # @return void # sub create_users_with_array_input { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'user' is set - unless ( exists $args{'user'} ) { - croak( -"Missing the required parameter 'user' when calling create_users_with_array_input" - ); + unless (exists $args{'user'}) { + croak("Missing the required parameter 'user' when calling create_users_with_array_input"); } # parse inputs my $_resource_path = '/user/createWithArray'; - my $_method = 'POST'; - my $query_params = {}; + my $_method = 'POST'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); my $_body_data; - # body params - if ( exists $args{'user'} ) { + if ( exists $args{'user'}) { $_body_data = $args{'user'}; } @@ -174,10 +164,9 @@ sub create_users_with_array_input { my $auth_settings = [qw()]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } @@ -185,55 +174,50 @@ sub create_users_with_array_input { # create_users_with_list_input # # Creates list of users with given input array -# +# # @param ARRAY[User] $user List of user object (required) { my $params = { - 'user' => { - data_type => 'ARRAY[User]', - description => 'List of user object', - required => '1', - }, + 'user' => { + data_type => 'ARRAY[User]', + description => 'List of user object', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'create_users_with_list_input'} = { - summary => 'Creates list of users with given input array', - params => $params, + __PACKAGE__->method_documentation->{ 'create_users_with_list_input' } = { + summary => 'Creates list of users with given input array', + params => $params, returns => undef, - }; + }; } - # @return void # sub create_users_with_list_input { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'user' is set - unless ( exists $args{'user'} ) { - croak( -"Missing the required parameter 'user' when calling create_users_with_list_input" - ); + unless (exists $args{'user'}) { + croak("Missing the required parameter 'user' when calling create_users_with_list_input"); } # parse inputs my $_resource_path = '/user/createWithList'; - my $_method = 'POST'; - my $query_params = {}; + my $_method = 'POST'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); my $_body_data; - # body params - if ( exists $args{'user'} ) { + if ( exists $args{'user'}) { $_body_data = $args{'user'}; } @@ -241,10 +225,9 @@ sub create_users_with_list_input { my $auth_settings = [qw()]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } @@ -252,69 +235,62 @@ sub create_users_with_list_input { # delete_user # # Delete user -# +# # @param string $username The name that needs to be deleted (required) { my $params = { - 'username' => { - data_type => 'string', - description => 'The name that needs to be deleted', - required => '1', - }, + 'username' => { + data_type => 'string', + description => 'The name that needs to be deleted', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'delete_user'} = { - summary => 'Delete user', - params => $params, + __PACKAGE__->method_documentation->{ 'delete_user' } = { + summary => 'Delete user', + params => $params, returns => undef, - }; + }; } - # @return void # sub delete_user { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'username' is set - unless ( exists $args{'username'} ) { - croak( - "Missing the required parameter 'username' when calling delete_user" - ); + unless (exists $args{'username'}) { + croak("Missing the required parameter 'username' when calling delete_user"); } # parse inputs my $_resource_path = '/user/{username}'; - my $_method = 'DELETE'; - my $query_params = {}; + my $_method = 'DELETE'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); # path params - if ( exists $args{'username'} ) { + if ( exists $args{'username'}) { my $_base_variable = "{" . "username" . "}"; - my $_base_value = - $self->{api_client}->to_path_value( $args{'username'} ); + my $_base_value = $self->{api_client}->to_path_value($args{'username'}); $_resource_path =~ s/$_base_variable/$_base_value/g; } my $_body_data; - # authentication setting, if any my $auth_settings = [qw()]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } @@ -322,76 +298,66 @@ sub delete_user { # get_user_by_name # # Get user by user name -# +# # @param string $username The name that needs to be fetched. Use user1 for testing. (required) { my $params = { - 'username' => { - data_type => 'string', - description => - 'The name that needs to be fetched. Use user1 for testing.', - required => '1', - }, + 'username' => { + data_type => 'string', + description => 'The name that needs to be fetched. Use user1 for testing.', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'get_user_by_name'} = { - summary => 'Get user by user name', - params => $params, + __PACKAGE__->method_documentation->{ 'get_user_by_name' } = { + summary => 'Get user by user name', + params => $params, returns => 'User', - }; + }; } - # @return User # sub get_user_by_name { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'username' is set - unless ( exists $args{'username'} ) { - croak( -"Missing the required parameter 'username' when calling get_user_by_name" - ); + unless (exists $args{'username'}) { + croak("Missing the required parameter 'username' when calling get_user_by_name"); } # parse inputs my $_resource_path = '/user/{username}'; - my $_method = 'GET'; - my $query_params = {}; + my $_method = 'GET'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header - my $_header_accept = $self->{api_client} - ->select_header_accept( 'application/xml', 'application/json' ); + my $_header_accept = $self->{api_client}->select_header_accept('application/xml', 'application/json'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); # path params - if ( exists $args{'username'} ) { + if ( exists $args{'username'}) { my $_base_variable = "{" . "username" . "}"; - my $_base_value = - $self->{api_client}->to_path_value( $args{'username'} ); + my $_base_value = $self->{api_client}->to_path_value($args{'username'}); $_resource_path =~ s/$_base_variable/$_base_value/g; } my $_body_data; - # authentication setting, if any my $auth_settings = [qw()]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { return; } - my $_response_object = - $self->{api_client}->deserialize( 'User', $response ); + my $_response_object = $self->{api_client}->deserialize('User', $response); return $_response_object; } @@ -399,92 +365,80 @@ sub get_user_by_name { # login_user # # Logs user into the system -# +# # @param string $username The user name for login (required) # @param string $password The password for login in clear text (required) { my $params = { - 'username' => { - data_type => 'string', - description => 'The user name for login', - required => '1', - }, - 'password' => { - data_type => 'string', - description => 'The password for login in clear text', - required => '1', - }, + 'username' => { + data_type => 'string', + description => 'The user name for login', + required => '1', + }, + 'password' => { + data_type => 'string', + description => 'The password for login in clear text', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'login_user'} = { - summary => 'Logs user into the system', - params => $params, + __PACKAGE__->method_documentation->{ 'login_user' } = { + summary => 'Logs user into the system', + params => $params, returns => 'string', - }; + }; } - # @return string # sub login_user { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'username' is set - unless ( exists $args{'username'} ) { - croak( - "Missing the required parameter 'username' when calling login_user" - ); + unless (exists $args{'username'}) { + croak("Missing the required parameter 'username' when calling login_user"); } # verify the required parameter 'password' is set - unless ( exists $args{'password'} ) { - croak( - "Missing the required parameter 'password' when calling login_user" - ); + unless (exists $args{'password'}) { + croak("Missing the required parameter 'password' when calling login_user"); } # parse inputs my $_resource_path = '/user/login'; - my $_method = 'GET'; - my $query_params = {}; + my $_method = 'GET'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header - my $_header_accept = $self->{api_client} - ->select_header_accept( 'application/xml', 'application/json' ); + my $_header_accept = $self->{api_client}->select_header_accept('application/xml', 'application/json'); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); # query params - if ( exists $args{'username'} ) { - $query_params->{'username'} = - $self->{api_client}->to_query_value( $args{'username'} ); + if ( exists $args{'username'}) { + $query_params->{'username'} = $self->{api_client}->to_query_value($args{'username'}); } # query params - if ( exists $args{'password'} ) { - $query_params->{'password'} = - $self->{api_client}->to_query_value( $args{'password'} ); + if ( exists $args{'password'}) { + $query_params->{'password'} = $self->{api_client}->to_query_value($args{'password'}); } my $_body_data; - # authentication setting, if any my $auth_settings = [qw()]; # make the API Call - my $response = $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); - if ( !$response ) { + my $response = $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); + if (!$response) { return; } - my $_response_object = - $self->{api_client}->deserialize( 'string', $response ); + my $_response_object = $self->{api_client}->deserialize('string', $response); return $_response_object; } @@ -492,47 +446,44 @@ sub login_user { # logout_user # # Logs out current logged in user session -# +# { - my $params = {}; - __PACKAGE__->method_documentation->{'logout_user'} = { - summary => 'Logs out current logged in user session', - params => $params, - returns => undef, + my $params = { }; + __PACKAGE__->method_documentation->{ 'logout_user' } = { + summary => 'Logs out current logged in user session', + params => $params, + returns => undef, + }; } - # @return void # sub logout_user { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # parse inputs my $_resource_path = '/user/logout'; - my $_method = 'GET'; - my $query_params = {}; + my $_method = 'GET'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); my $_body_data; - # authentication setting, if any my $auth_settings = [qw()]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } @@ -540,74 +491,68 @@ sub logout_user { # update_user # # Updated user -# +# # @param string $username name that need to be deleted (required) # @param User $user Updated user object (required) { my $params = { - 'username' => { - data_type => 'string', - description => 'name that need to be deleted', - required => '1', - }, - 'user' => { - data_type => 'User', - description => 'Updated user object', - required => '1', - }, + 'username' => { + data_type => 'string', + description => 'name that need to be deleted', + required => '1', + }, + 'user' => { + data_type => 'User', + description => 'Updated user object', + required => '1', + }, }; - __PACKAGE__->method_documentation->{'update_user'} = { - summary => 'Updated user', - params => $params, + __PACKAGE__->method_documentation->{ 'update_user' } = { + summary => 'Updated user', + params => $params, returns => undef, - }; + }; } - # @return void # sub update_user { - my ( $self, %args ) = @_; + my ($self, %args) = @_; # verify the required parameter 'username' is set - unless ( exists $args{'username'} ) { - croak( - "Missing the required parameter 'username' when calling update_user" - ); + unless (exists $args{'username'}) { + croak("Missing the required parameter 'username' when calling update_user"); } # verify the required parameter 'user' is set - unless ( exists $args{'user'} ) { - croak("Missing the required parameter 'user' when calling update_user"); + unless (exists $args{'user'}) { + croak("Missing the required parameter 'user' when calling update_user"); } # parse inputs my $_resource_path = '/user/{username}'; - my $_method = 'PUT'; - my $query_params = {}; + my $_method = 'PUT'; + my $query_params = {}; my $header_params = {}; - my $form_params = {}; + my $form_params = {}; # 'Accept' and 'Content-Type' header my $_header_accept = $self->{api_client}->select_header_accept(); if ($_header_accept) { $header_params->{'Accept'} = $_header_accept; } - $header_params->{'Content-Type'} = - $self->{api_client}->select_header_content_type(); + $header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type(); # path params - if ( exists $args{'username'} ) { + if ( exists $args{'username'}) { my $_base_variable = "{" . "username" . "}"; - my $_base_value = - $self->{api_client}->to_path_value( $args{'username'} ); + my $_base_value = $self->{api_client}->to_path_value($args{'username'}); $_resource_path =~ s/$_base_variable/$_base_value/g; } my $_body_data; - # body params - if ( exists $args{'user'} ) { + if ( exists $args{'user'}) { $_body_data = $args{'user'}; } @@ -615,10 +560,9 @@ sub update_user { my $auth_settings = [qw()]; # make the API Call - $self->{api_client}->call_api( - $_resource_path, $_method, $query_params, $form_params, - $header_params, $_body_data, $auth_settings - ); + $self->{api_client}->call_api($_resource_path, $_method, + $query_params, $form_params, + $header_params, $_body_data, $auth_settings); return; } diff --git a/samples/client/petstore/perl/pom.xml b/samples/client/petstore/perl/pom.xml index e4ad8fbf600..9dfa61c92da 100644 --- a/samples/client/petstore/perl/pom.xml +++ b/samples/client/petstore/perl/pom.xml @@ -78,6 +78,19 @@ + diff --git a/samples/client/petstore/perl/t/AdultTest.t b/samples/client/petstore/perl/t/AdultTest.t new file mode 100644 index 00000000000..b76d0b23bdc --- /dev/null +++ b/samples/client/petstore/perl/t/AdultTest.t @@ -0,0 +1,33 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by the OpenAPI Generator +# Please update the test cases below to test the model. +# Ref: https://openapi-generator.tech +# +use Test::More tests => 2; +use Test::Exception; + +use lib 'lib'; +use strict; +use warnings; + + +use_ok('WWW::OpenAPIClient::Object::Adult'); + +my $instance = WWW::OpenAPIClient::Object::Adult->new(); + +isa_ok($instance, 'WWW::OpenAPIClient::Object::Adult'); + diff --git a/samples/client/petstore/perl/t/ChildTest.t b/samples/client/petstore/perl/t/ChildTest.t new file mode 100644 index 00000000000..f58e2c50c03 --- /dev/null +++ b/samples/client/petstore/perl/t/ChildTest.t @@ -0,0 +1,33 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by the OpenAPI Generator +# Please update the test cases below to test the model. +# Ref: https://openapi-generator.tech +# +use Test::More tests => 2; +use Test::Exception; + +use lib 'lib'; +use strict; +use warnings; + + +use_ok('WWW::OpenAPIClient::Object::Child'); + +my $instance = WWW::OpenAPIClient::Object::Child->new(); + +isa_ok($instance, 'WWW::OpenAPIClient::Object::Child'); + diff --git a/samples/client/petstore/perl/t/DefaultApiTest.t b/samples/client/petstore/perl/t/DefaultApiTest.t new file mode 100644 index 00000000000..c14be6c6707 --- /dev/null +++ b/samples/client/petstore/perl/t/DefaultApiTest.t @@ -0,0 +1,40 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by OpenAPI Generator +# Please update the test cases below to test the API endpoints. +# Ref: https://openapi-generator.tech +# +use Test::More tests => 1; #TODO update number of test cases +use Test::Exception; + +use lib 'lib'; +use strict; +use warnings; + +use_ok('WWW::OpenAPIClient::DefaultApi'); + +my $api = WWW::OpenAPIClient::DefaultApi->new(); +isa_ok($api, 'WWW::OpenAPIClient::DefaultApi'); + +# +# foo_get test +# +{ + my $result = $api->foo_get(); +} + + +1; diff --git a/samples/client/petstore/perl/t/FooTest.t b/samples/client/petstore/perl/t/FooTest.t new file mode 100644 index 00000000000..84aabda5c41 --- /dev/null +++ b/samples/client/petstore/perl/t/FooTest.t @@ -0,0 +1,33 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by the OpenAPI Generator +# Please update the test cases below to test the model. +# Ref: https://openapi-generator.tech +# +use Test::More tests => 2; +use Test::Exception; + +use lib 'lib'; +use strict; +use warnings; + + +use_ok('WWW::OpenAPIClient::Object::Foo'); + +my $instance = WWW::OpenAPIClient::Object::Foo->new(); + +isa_ok($instance, 'WWW::OpenAPIClient::Object::Foo'); + diff --git a/samples/client/petstore/perl/t/HumanTest.t b/samples/client/petstore/perl/t/HumanTest.t new file mode 100644 index 00000000000..0bf47c04df0 --- /dev/null +++ b/samples/client/petstore/perl/t/HumanTest.t @@ -0,0 +1,33 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by the OpenAPI Generator +# Please update the test cases below to test the model. +# Ref: https://openapi-generator.tech +# +use Test::More tests => 2; +use Test::Exception; + +use lib 'lib'; +use strict; +use warnings; + + +use_ok('WWW::OpenAPIClient::Object::Human'); + +my $instance = WWW::OpenAPIClient::Object::Human->new(); + +isa_ok($instance, 'WWW::OpenAPIClient::Object::Human'); + diff --git a/samples/client/petstore/perl/t/InlineObject1Test.t b/samples/client/petstore/perl/t/InlineObject1Test.t new file mode 100644 index 00000000000..e2f054ad6bd --- /dev/null +++ b/samples/client/petstore/perl/t/InlineObject1Test.t @@ -0,0 +1,33 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by the OpenAPI Generator +# Please update the test cases below to test the model. +# Ref: https://openapi-generator.tech +# +use Test::More tests => 2; +use Test::Exception; + +use lib 'lib'; +use strict; +use warnings; + + +use_ok('WWW::OpenAPIClient::Object::InlineObject1'); + +my $instance = WWW::OpenAPIClient::Object::InlineObject1->new(); + +isa_ok($instance, 'WWW::OpenAPIClient::Object::InlineObject1'); + diff --git a/samples/client/petstore/perl/t/InlineObject2Test.t b/samples/client/petstore/perl/t/InlineObject2Test.t new file mode 100644 index 00000000000..1f5890f3466 --- /dev/null +++ b/samples/client/petstore/perl/t/InlineObject2Test.t @@ -0,0 +1,33 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by the OpenAPI Generator +# Please update the test cases below to test the model. +# Ref: https://openapi-generator.tech +# +use Test::More tests => 2; +use Test::Exception; + +use lib 'lib'; +use strict; +use warnings; + + +use_ok('WWW::OpenAPIClient::Object::InlineObject2'); + +my $instance = WWW::OpenAPIClient::Object::InlineObject2->new(); + +isa_ok($instance, 'WWW::OpenAPIClient::Object::InlineObject2'); + diff --git a/samples/client/petstore/perl/t/InlineObject3Test.t b/samples/client/petstore/perl/t/InlineObject3Test.t new file mode 100644 index 00000000000..3861c16ca8c --- /dev/null +++ b/samples/client/petstore/perl/t/InlineObject3Test.t @@ -0,0 +1,33 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by the OpenAPI Generator +# Please update the test cases below to test the model. +# Ref: https://openapi-generator.tech +# +use Test::More tests => 2; +use Test::Exception; + +use lib 'lib'; +use strict; +use warnings; + + +use_ok('WWW::OpenAPIClient::Object::InlineObject3'); + +my $instance = WWW::OpenAPIClient::Object::InlineObject3->new(); + +isa_ok($instance, 'WWW::OpenAPIClient::Object::InlineObject3'); + diff --git a/samples/client/petstore/perl/t/InlineObject4Test.t b/samples/client/petstore/perl/t/InlineObject4Test.t new file mode 100644 index 00000000000..5949bc4ac8b --- /dev/null +++ b/samples/client/petstore/perl/t/InlineObject4Test.t @@ -0,0 +1,33 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by the OpenAPI Generator +# Please update the test cases below to test the model. +# Ref: https://openapi-generator.tech +# +use Test::More tests => 2; +use Test::Exception; + +use lib 'lib'; +use strict; +use warnings; + + +use_ok('WWW::OpenAPIClient::Object::InlineObject4'); + +my $instance = WWW::OpenAPIClient::Object::InlineObject4->new(); + +isa_ok($instance, 'WWW::OpenAPIClient::Object::InlineObject4'); + diff --git a/samples/client/petstore/perl/t/InlineObject5Test.t b/samples/client/petstore/perl/t/InlineObject5Test.t new file mode 100644 index 00000000000..dcce5288ea1 --- /dev/null +++ b/samples/client/petstore/perl/t/InlineObject5Test.t @@ -0,0 +1,33 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by the OpenAPI Generator +# Please update the test cases below to test the model. +# Ref: https://openapi-generator.tech +# +use Test::More tests => 2; +use Test::Exception; + +use lib 'lib'; +use strict; +use warnings; + + +use_ok('WWW::OpenAPIClient::Object::InlineObject5'); + +my $instance = WWW::OpenAPIClient::Object::InlineObject5->new(); + +isa_ok($instance, 'WWW::OpenAPIClient::Object::InlineObject5'); + diff --git a/samples/client/petstore/perl/t/InlineObjectTest.t b/samples/client/petstore/perl/t/InlineObjectTest.t new file mode 100644 index 00000000000..055490acd2e --- /dev/null +++ b/samples/client/petstore/perl/t/InlineObjectTest.t @@ -0,0 +1,33 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by the OpenAPI Generator +# Please update the test cases below to test the model. +# Ref: https://openapi-generator.tech +# +use Test::More tests => 2; +use Test::Exception; + +use lib 'lib'; +use strict; +use warnings; + + +use_ok('WWW::OpenAPIClient::Object::InlineObject'); + +my $instance = WWW::OpenAPIClient::Object::InlineObject->new(); + +isa_ok($instance, 'WWW::OpenAPIClient::Object::InlineObject'); + diff --git a/samples/client/petstore/perl/t/InlineResponseDefaultTest.t b/samples/client/petstore/perl/t/InlineResponseDefaultTest.t new file mode 100644 index 00000000000..36336e35268 --- /dev/null +++ b/samples/client/petstore/perl/t/InlineResponseDefaultTest.t @@ -0,0 +1,33 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by the OpenAPI Generator +# Please update the test cases below to test the model. +# Ref: https://openapi-generator.tech +# +use Test::More tests => 2; +use Test::Exception; + +use lib 'lib'; +use strict; +use warnings; + + +use_ok('WWW::OpenAPIClient::Object::InlineResponseDefault'); + +my $instance = WWW::OpenAPIClient::Object::InlineResponseDefault->new(); + +isa_ok($instance, 'WWW::OpenAPIClient::Object::InlineResponseDefault'); + diff --git a/samples/client/petstore/perl/t/PersonTest.t b/samples/client/petstore/perl/t/PersonTest.t new file mode 100644 index 00000000000..eceb9e5c1fc --- /dev/null +++ b/samples/client/petstore/perl/t/PersonTest.t @@ -0,0 +1,33 @@ +=begin comment + +OpenAPI Petstore + +This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + +OpenAPI spec version: 1.0.0 + +Generated by: https://openapi-generator.tech + +=end comment + +=cut + +# +# NOTE: This class is auto generated by the OpenAPI Generator +# Please update the test cases below to test the model. +# Ref: https://openapi-generator.tech +# +use Test::More tests => 2; +use Test::Exception; + +use lib 'lib'; +use strict; +use warnings; + + +use_ok('WWW::OpenAPIClient::Object::Person'); + +my $instance = WWW::OpenAPIClient::Object::Person->new(); + +isa_ok($instance, 'WWW::OpenAPIClient::Object::Person'); + diff --git a/samples/client/petstore/perl/tests/06_inheritance.t b/samples/client/petstore/perl/tests/06_inheritance.t new file mode 100644 index 00000000000..94f2eee7487 --- /dev/null +++ b/samples/client/petstore/perl/tests/06_inheritance.t @@ -0,0 +1,64 @@ +use Test::More tests => 37; +use Test::Exception; + +use lib 'lib'; +use strict; +use warnings; + +use_ok('WWW::OpenAPIClient::Object::Adult'); +use_ok('WWW::OpenAPIClient::Object::Person'); +use_ok('WWW::OpenAPIClient::Object::Human'); + +my $pet_id = 10008; + +my $adult = WWW::OpenAPIClient::Object::Adult->new('duplicated_optional' => 22, + 'duplicated_required' => 11, + 'children' => [], + 'adult_required' => 1); +my $child = WWW::OpenAPIClient::Object::Child->new('age' => 11, 'first_name' => 'William'); +my $human = WWW::OpenAPIClient::Object::Human->new('___type' => $pet_id, 'body' => 'perl test'); + +isa_ok($adult, 'WWW::OpenAPIClient::Object::Adult'); +isa_ok($child, 'WWW::OpenAPIClient::Object::Child'); +isa_ok($human, 'WWW::OpenAPIClient::Object::Human'); + +#my $pet_hash = $pet->to_hash; +# +#is $pet_hash->{category}->{id}, '22', 'get the proper category id'; +#is $pet_hash->{category}->{name}, 'perl', 'get the proper category name'; +#is $pet_hash->{tags}[0]->{name}, 'just kidding', 'get the proper tag name'; +#is $pet_hash->{tags}[0]->{id}, '11', 'get the proper tag id'; +# +#my $add_pet = $api->add_pet(pet => $pet); +# +#my $get_pet = $api->get_pet_by_id(pet_id => $pet_id); +#my $get_pet_hash = $get_pet->to_hash; +#is $get_pet_hash->{name}, 'perl test', 'get the proper pet name from get_pet_by_id'; +#is $get_pet_hash->{id}, '10008', 'get the proper pet id from get_pet_by_id'; +#is $get_pet_hash->{category}->{name}, 'perl', 'get the proper category name from get_pet_by_id'; +#is $get_pet_hash->{category}->{id}, '22', 'get the proper category id from get_pet_by_id'; +#is $get_pet_hash->{category}->{name}, 'perl', 'get the proper category from get_pet_by_id'; +#is $get_pet_hash->{tags}[0]->{name}, 'just kidding', 'get the proper tag from get_pet_by_id'; +#is $get_pet_hash->{tags}[0]->{id}, '11', 'get the proper tag id from get_pet_by_id'; +#is $get_pet_hash->{photoUrls}->[0], '123', 'get the proper photoUrl from get_pet_by_id'; +#is $get_pet_hash->{photoUrls}->[1], 'oop', 'get the proper photoUrl from get_pet_by_id'; +# +# +#my $update_pet_with_form = $api->update_pet_with_form(pet_id => $pet_id, name => 'test_name', status => 'sold'); +#is $update_pet_with_form, undef, 'get the null response from update_pet_wth_form'; +# +#my $get_pet_after_update = $api->get_pet_by_id(pet_id => $pet_id); +#is $get_pet_after_update->{status}, 'sold', 'get the updated status after update_pet_with_form'; +# +#my $upload_pet = $api->upload_file(pet_id => $pet_id, additional_metadata => 'testabc', file => 'test.pl'); +#isa_ok($upload_pet, 'WWW::OpenAPIClient::Object::ApiResponse'); +# +#my $delete_pet = $api->delete_pet(pet_id => $pet_id); +#is $delete_pet, undef, 'get the null response from delete_pet'; +#throws_ok{$api->get_pet_by_id(pet_id => $pet_id)} qr/API Exception\(404\): Not Found/, "throw 404 error about pet not found after delete"; +##is $get_pet_after_delete->{status}, undef, 'get the updated status after update_pet_with_form'; +# +#my $pets; +#lives_ok {$pets = $api->find_pets_by_status(status => [qw(sold available)])} 'array query param processed correctly'; +#isa_ok($pets->[0], 'WWW::OpenAPIClient::Object::Pet'); +#