forked from loafle/openapi-generator-original
		
	add new files for perl generator
This commit is contained in:
		
							parent
							
								
									70cd71fd35
								
							
						
					
					
						commit
						24c47c7434
					
				@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					# {{moduleName}}::{{classname}}{{#description}}
 | 
				
			||||||
 | 
					{{description}}{{/description}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					All URIs are relative to *{{basePath}}*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Method | HTTP request | Description
 | 
				
			||||||
 | 
					------------- | ------------- | -------------
 | 
				
			||||||
 | 
					{{#operations}}{{#operation}}[**{{operationId}}**]({{classname}}.md#{{operationId}}) | **{{httpMethod}}** {{path}} | {{#summary}}{{summary}}{{/summary}}
 | 
				
			||||||
 | 
					{{/operation}}{{/operations}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{{#operations}}
 | 
				
			||||||
 | 
					{{#operation}}
 | 
				
			||||||
 | 
					# **{{{operationId}}}**
 | 
				
			||||||
 | 
					> {{#returnType}}{{{returnType}}} {{/returnType}}{{{operationId}}}({{#allParams}}{{paramName}} => ${{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{{{summary}}}{{#notes}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{{{notes}}}{{/notes}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Example 
 | 
				
			||||||
 | 
					```perl
 | 
				
			||||||
 | 
					my $api = {{moduleName}}::{{classname}}->new();
 | 
				
			||||||
 | 
					{{#allParams}}my ${{paramName}} = {{#isListContainer}}({{/isListContainer}}{{#isBodyParam}}{{{moduleName}}}::Object::{{dataType}}->new(){{/isBodyParam}}{{^isBodyParam}}{{{example}}}{{/isBodyParam}}{{#isListContainer}}){{/isListContainer}}; # [{{{dataType}}}] {{description}}
 | 
				
			||||||
 | 
					{{/allParams}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					eval { 
 | 
				
			||||||
 | 
					    {{#returnType}}my $result = {{/returnType}}$api->{{{operationId}}}({{#allParams}}{{paramName}} => ${{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					if ($@) {
 | 
				
			||||||
 | 
					    warn "Exception when calling {{operationId}}: $@\n";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Parameters
 | 
				
			||||||
 | 
					Name | Type | Description  | Notes
 | 
				
			||||||
 | 
					------------- | ------------- | ------------- | -------------
 | 
				
			||||||
 | 
					{{#allParams}} **{{paramName}}** | {{#isPrimitiveType}}**{{dataType}}**{{/isPrimitiveType}}{{^isPrimitiveType}}[**{{dataType}}**]({{baseType}}.md){{/isPrimitiveType}}| {{description}} | {{^required}}[optional] {{/required}}{{#defaultValue}}[default to {{defaultValue}}]{{/defaultValue}}
 | 
				
			||||||
 | 
					{{/allParams}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Return type
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{{#returnType}}{{#returnTypeIsPrimitive}}**{{{returnType}}}**{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}[**{{{returnType}}}**]({{returnBaseType}}.md){{/returnTypeIsPrimitive}}{{/returnType}}{{^returnType}}void (empty response body){{/returnType}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### HTTP headers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 - **Content-Type**: {{#consumes}}{{mediaType}}{{#hasMore}}, {{/hasMore}}{{/consumes}}{{^consumes}}Not defined{{/consumes}}
 | 
				
			||||||
 | 
					 - **Accept**: {{#produces}}{{mediaType}}{{#hasMore}}, {{/hasMore}}{{/produces}}{{^produces}}Not defined{{/produces}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Authentication scheme
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{{^authMethods}}No authentiation required{{/authMethods}}{{#authMethods}}{{name}}{{/authMethods}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{{/operation}}
 | 
				
			||||||
 | 
					{{/operations}}
 | 
				
			||||||
@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					{{#models}}{{#model}}# {{moduleName}}::Object::{{classname}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Import the module
 | 
				
			||||||
 | 
					```perl
 | 
				
			||||||
 | 
					use {{moduleName}}::Object::{{classname}};
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Properties
 | 
				
			||||||
 | 
					Name | Type | Description | Notes
 | 
				
			||||||
 | 
					------------ | ------------- | ------------- | -------------
 | 
				
			||||||
 | 
					{{#vars}}**{{name}}** | {{#isPrimitiveType}}**{{datatype}}**{{/isPrimitiveType}}{{^isPrimitiveType}}[**{{datatype}}**]({{complexType}}.md){{/isPrimitiveType}} | {{description}} | {{^required}}[optional] {{/required}}{{#readOnly}}[readonly] {{/readOnly}}{{#defaultValue}}[default to {{defaultValue}}]{{/defaultValue}}
 | 
				
			||||||
 | 
					{{/vars}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{{/model}}{{/models}}
 | 
				
			||||||
							
								
								
									
										13
									
								
								samples/client/petstore/perl/docs/ModelReturn.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								samples/client/petstore/perl/docs/ModelReturn.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					# WWW::SwaggerClient::Object::ModelReturn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Import the module
 | 
				
			||||||
 | 
					```perl
 | 
				
			||||||
 | 
					use WWW::SwaggerClient::Object::ModelReturn;
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Properties
 | 
				
			||||||
 | 
					Name | Type | Description | Notes
 | 
				
			||||||
 | 
					------------ | ------------- | ------------- | -------------
 | 
				
			||||||
 | 
					**return** | **int** |  | [optional] 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -0,0 +1,127 @@
 | 
				
			|||||||
 | 
					package WWW::SwaggerClient::Object::ModelReturn;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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 the swagger code generator program. Do not edit the class manually.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__PACKAGE__->mk_classdata('attribute_map' => {});
 | 
				
			||||||
 | 
					__PACKAGE__->mk_classdata('swagger_types' => {});
 | 
				
			||||||
 | 
					__PACKAGE__->mk_classdata('method_documentation' => {}); 
 | 
				
			||||||
 | 
					__PACKAGE__->mk_classdata('class_documentation' => {});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# new 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 } );
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						return $self;
 | 
				
			||||||
 | 
					}  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# return perl hash
 | 
				
			||||||
 | 
					sub to_hash {
 | 
				
			||||||
 | 
					    return decode_json(JSON->new->convert_blessed->encode( shift ));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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 swagger_types to deserialize the data
 | 
				
			||||||
 | 
					    while ( my ($_key, $_type) = each %{$self->swagger_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::SwaggerClient::Object::$type->new()";
 | 
				
			||||||
 | 
					        return $_instance->from_hash($data);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__PACKAGE__->class_documentation({description => '',
 | 
				
			||||||
 | 
					                                  class => 'ModelReturn',
 | 
				
			||||||
 | 
					                                  required => [], # TODO
 | 
				
			||||||
 | 
					}                                 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__PACKAGE__->method_documentation({
 | 
				
			||||||
 | 
					    'return' => {
 | 
				
			||||||
 | 
					    	datatype => 'int',
 | 
				
			||||||
 | 
					    	base_name => 'return',
 | 
				
			||||||
 | 
					    	description => '',
 | 
				
			||||||
 | 
					    	format => '',
 | 
				
			||||||
 | 
					    	read_only => '',
 | 
				
			||||||
 | 
					    		},
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__PACKAGE__->swagger_types( {
 | 
				
			||||||
 | 
					    'return' => 'int'
 | 
				
			||||||
 | 
					} );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__PACKAGE__->attribute_map( {
 | 
				
			||||||
 | 
					    'return' => 'return'
 | 
				
			||||||
 | 
					} );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__PACKAGE__->mk_accessors(keys %{__PACKAGE__->attribute_map});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1;
 | 
				
			||||||
							
								
								
									
										17
									
								
								samples/client/petstore/perl/t/ModelReturnTest.t
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								samples/client/petstore/perl/t/ModelReturnTest.t
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					# NOTE: This class is auto generated by the Swagger Codegen
 | 
				
			||||||
 | 
					# Please update the test case below to test the model.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Test::More tests => 2;
 | 
				
			||||||
 | 
					use Test::Exception;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use lib 'lib';
 | 
				
			||||||
 | 
					use strict;
 | 
				
			||||||
 | 
					use warnings;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use_ok('WWW::SwaggerClient::Object::ModelReturn');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					my $instance = WWW::SwaggerClient::Object::ModelReturn->new();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					isa_ok($instance, 'WWW::SwaggerClient::Object::ModelReturn');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user