mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-12-02 16:33:43 +00:00
88 lines
2.8 KiB
Plaintext
88 lines
2.8 KiB
Plaintext
require "uri"
|
|
|
|
{{#operations}}
|
|
class {{classname}}
|
|
basePath = "{{basePath}}"
|
|
# apiInvoker = APIInvoker
|
|
|
|
def self.escapeString(string)
|
|
URI.encode(string.to_s)
|
|
end
|
|
|
|
{{#operation}}
|
|
def self.{{nickname}} ({{#allParams}}{{paramName}}{{#defaultValue}} = {{{defaultValue}}}{{/defaultValue}},{{/allParams}} opts={})
|
|
query_param_keys = [{{#queryParams}}:{{paramName}}{{#hasMore}},{{/hasMore}}{{/queryParams}}]
|
|
|
|
{{#requiredParamCount}}
|
|
|
|
# verify existence of params
|
|
{{#requiredParams}}
|
|
raise "{{{paramName}}} is required" if {{{paramName}}}.nil?
|
|
{{/requiredParams}}
|
|
{{/requiredParamCount}}
|
|
|
|
# set default values and merge with input
|
|
options = {
|
|
{{#allParams}}:'{{paramName}}' => {{paramName}}{{#hasMore}},{{/hasMore}}
|
|
{{/allParams}}
|
|
}.merge(opts)
|
|
|
|
#resource path
|
|
path = "{{path}}".sub('{format}','json'){{#pathParams}}.sub('{' + '{{baseName}}' + '}', escapeString({{paramName}}))
|
|
{{/pathParams}}{{newline}}
|
|
|
|
# pull querystring keys from options
|
|
queryopts = options.select do |key,value|
|
|
query_param_keys.include? key
|
|
end
|
|
|
|
# header parameters, if any
|
|
headers = {}
|
|
{{#headerParams}}{{#optional}}headers[:'{{{baseName}}}'] = options[:'{{{paramName}}}'] if options[:'{{{paramName}}}']{{/optional}}{{/headerParams}}
|
|
{{#headerParams}}{{^optional}}headers[:'{{{baseName}}}'] = {{{paramName}}}{{/optional}}{{/headerParams}}
|
|
|
|
# http body (model)
|
|
post_body = nil
|
|
{{#bodyParam}}
|
|
if body != nil
|
|
if body.is_a?(Array)
|
|
array = Array.new
|
|
body.each do |item|
|
|
if item.respond_to?("to_body".to_sym)
|
|
array.push item.to_body
|
|
else
|
|
array.push item
|
|
end
|
|
end
|
|
post_body = array
|
|
|
|
else
|
|
if body.respond_to?("to_body".to_sym)
|
|
post_body = body.to_body
|
|
else
|
|
post_body = body
|
|
end
|
|
end
|
|
end
|
|
{{/bodyParam}}
|
|
|
|
# form parameters
|
|
form_parameter_hash = {}
|
|
{{#formParams}}{{#optional}}form_parameter_hash["{{baseName}}"] = options[:'{{paramName}}'] if options[:'{{paramName}}']{{/optional}}
|
|
{{^optional}}form_parameter_hash["{{baseName}}"] = {{paramName}}{{/optional}}{{/formParams}}
|
|
|
|
{{#returnType}}
|
|
response = Swagger::Request.new(:{{httpMethod}}, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body
|
|
{{#returnContainer}}
|
|
response.map {|response|{{/returnContainer}} {{returnBaseType}}.new(response){{#returnContainer}} }{{/returnContainer}}
|
|
{{/returnType}}
|
|
{{^returnType}}
|
|
Swagger::Request.new(:{{httpMethod}}, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make
|
|
{{/returnType}}
|
|
{{newline}}
|
|
end
|
|
|
|
{{/operation}}
|
|
end
|
|
{{/operations}}
|