mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-06-16 13:50:55 +00:00
176 lines
5.3 KiB
Plaintext
176 lines
5.3 KiB
Plaintext
#
|
|
# Copyright 2016 SmartBear Software
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
#
|
|
# NOTE: This class is auto generated by the swagger code generator program.
|
|
# Do not edit the class manually.
|
|
#
|
|
package {{moduleName}}::{{classname}};
|
|
|
|
require 5.6.0;
|
|
use strict;
|
|
use warnings;
|
|
use utf8;
|
|
use Exporter;
|
|
use Carp qw( croak );
|
|
use Log::Any qw($log);
|
|
|
|
use {{moduleName}}::ApiClient;
|
|
use {{moduleName}}::Configuration;
|
|
|
|
use base "Class::Data::Inheritable";
|
|
|
|
__PACKAGE__->mk_classdata('method_documentation' => {});
|
|
|
|
sub new {
|
|
my $class = shift;
|
|
my (%self) = (
|
|
'api_client' => {{moduleName}}::ApiClient->instance,
|
|
@_
|
|
);
|
|
|
|
#my $self = {
|
|
# #api_client => $options->{api_client}
|
|
# api_client => $default_api_client
|
|
#};
|
|
|
|
bless \%self, $class;
|
|
|
|
}
|
|
{{#operations}}
|
|
|
|
{{#operation}}
|
|
|
|
#
|
|
# {{{operationId}}}
|
|
#
|
|
# {{{summary}}}
|
|
#
|
|
{{#allParams}}# @param {{dataType}} ${{paramName}} {{description}} {{#required}}(required){{/required}}{{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}
|
|
{{/allParams}}
|
|
{
|
|
my $params = {
|
|
{{#allParams}}
|
|
'{{paramName}}' => {
|
|
data_type => '{{dataType}}',
|
|
description => '{{description}}',
|
|
required => {{#required}}'1'{{/required}}{{^required}}'0'{{/required}},
|
|
},
|
|
{{/allParams}}
|
|
};
|
|
__PACKAGE__->method_documentation->{ {{operationId}} } = {
|
|
summary => '{{summary}}',
|
|
params => $params,
|
|
returns => {{#returnType}}'{{{returnType}}}'{{/returnType}}{{^returnType}}undef{{/returnType}},
|
|
};
|
|
}
|
|
# @return {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}
|
|
#
|
|
sub {{operationId}} {
|
|
my ($self, %args) = @_;
|
|
|
|
{{#allParams}}
|
|
{{#required}}
|
|
# verify the required parameter '{{paramName}}' is set
|
|
unless (exists $args{'{{paramName}}'}) {
|
|
croak("Missing the required parameter '{{paramName}}' when calling {{operationId}}");
|
|
}
|
|
|
|
{{/required}}
|
|
{{/allParams}}
|
|
# parse inputs
|
|
my $_resource_path = '{{path}}';
|
|
$_resource_path =~ s/{format}/json/; # default format to json
|
|
|
|
my $_method = '{{httpMethod}}';
|
|
my $query_params = {};
|
|
my $header_params = {};
|
|
my $form_params = {};
|
|
|
|
# 'Accept' and 'Content-Type' header
|
|
my $_header_accept = $self->{api_client}->select_header_accept({{#produces}}'{{mediaType}}'{{#hasMore}}, {{/hasMore}}{{/produces}});
|
|
if ($_header_accept) {
|
|
$header_params->{'Accept'} = $_header_accept;
|
|
}
|
|
$header_params->{'Content-Type'} = $self->{api_client}->select_header_content_type({{#consumes}}'{{mediaType}}'{{#hasMore}}, {{/hasMore}}{{/consumes}});
|
|
|
|
{{#queryParams}}
|
|
# query params
|
|
if ( exists $args{'{{paramName}}'}) {
|
|
$query_params->{'{{baseName}}'} = $self->{api_client}->to_query_value($args{'{{paramName}}'});
|
|
}
|
|
|
|
{{/queryParams}}
|
|
{{#headerParams}}
|
|
# header params
|
|
if ( exists $args{'{{paramName}}'}) {
|
|
$header_params->{'{{baseName}}'} = $self->{api_client}->to_header_value($args{'{{paramName}}'});
|
|
}
|
|
|
|
{{/headerParams}}
|
|
{{#pathParams}}
|
|
# path params
|
|
if ( exists $args{'{{paramName}}'}) {
|
|
my $_base_variable = "{" . "{{baseName}}" . "}";
|
|
my $_base_value = $self->{api_client}->to_path_value($args{'{{paramName}}'});
|
|
$_resource_path =~ s/$_base_variable/$_base_value/g;
|
|
}
|
|
|
|
{{/pathParams}}
|
|
{{#formParams}}
|
|
# form params
|
|
if ( exists $args{'{{paramName}}'} ) {
|
|
{{#isFile}}$form_params->{'{{baseName}}'} = [] unless defined $form_params->{'{{baseName}}'};
|
|
push @{$form_params->{'{{baseName}}'}}, $args{'{{paramName}}'};
|
|
{{/isFile}}
|
|
{{^isFile}}$form_params->{'{{baseName}}'} = $self->{api_client}->to_form_value($args{'{{paramName}}'});
|
|
{{/isFile}}
|
|
}
|
|
|
|
{{/formParams}}
|
|
my $_body_data;
|
|
{{#bodyParams}}
|
|
# body params
|
|
if ( exists $args{'{{paramName}}'}) {
|
|
$_body_data = $args{'{{paramName}}'};
|
|
}
|
|
|
|
{{/bodyParams}}
|
|
# authentication setting, if any
|
|
my $auth_settings = [qw({{#authMethods}}{{name}} {{/authMethods}})];
|
|
|
|
# make the API Call
|
|
{{#returnType}}
|
|
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('{{returnType}}', $response);
|
|
return $_response_object;
|
|
{{/returnType}}
|
|
{{^returnType}}
|
|
$self->{api_client}->call_api($_resource_path, $_method,
|
|
$query_params, $form_params,
|
|
$header_params, $_body_data, $auth_settings);
|
|
return;
|
|
{{/returnType}}
|
|
}
|
|
{{/operation}}
|
|
{{/operations}}
|
|
|
|
1;
|