mirror of
https://github.com/jlengrand/openapi-generator.git
synced 2026-05-18 08:31:20 +00:00
refactor python client using urllib3
This commit is contained in:
@@ -21,98 +21,65 @@ NOTE: This class is auto generated by the swagger code generator program. Do not
|
||||
"""
|
||||
import sys
|
||||
import os
|
||||
import urllib
|
||||
|
||||
from models import *
|
||||
|
||||
# python 2 and python 3 compatibility library
|
||||
from six import iteritems
|
||||
|
||||
{{#operations}}
|
||||
class {{classname}}(object):
|
||||
|
||||
def __init__(self, apiClient):
|
||||
self.apiClient = apiClient
|
||||
def __init__(self, api_client):
|
||||
self.api_client = api_client
|
||||
|
||||
{{newline}}
|
||||
{{#operation}}
|
||||
def {{nickname}}(self, {{#requiredParams}}{{paramName}}{{#defaultValue}} = None{{/defaultValue}}, {{/requiredParams}}**kwargs):
|
||||
"""{{{summary}}}
|
||||
"""
|
||||
{{{summary}}}
|
||||
{{{notes}}}
|
||||
|
||||
Args:
|
||||
{{#allParams}}{{paramName}}, {{dataType}}: {{{description}}} {{^optional}}(required){{/optional}}{{#optional}}(optional){{/optional}}
|
||||
{{/allParams}}
|
||||
{{#allParams}}
|
||||
:param {{dataType}} {{paramName}}: {{{description}}} {{^optional}}(required){{/optional}}{{#optional}}(optional){{/optional}}
|
||||
{{/allParams}}
|
||||
|
||||
Returns: {{returnType}}
|
||||
:return: {{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}None{{/returnType}}
|
||||
"""
|
||||
|
||||
allParams = [{{#allParams}}'{{paramName}}'{{#hasMore}}, {{/hasMore}}{{/allParams}}]
|
||||
all_params = [{{#allParams}}'{{paramName}}'{{#hasMore}}, {{/hasMore}}{{/allParams}}]
|
||||
|
||||
params = locals()
|
||||
for (key, val) in params['kwargs'].iteritems():
|
||||
if key not in allParams:
|
||||
for key, val in iteritems(params['kwargs']):
|
||||
if key not in all_params:
|
||||
raise TypeError("Got an unexpected keyword argument '%s' to method {{nickname}}" % key)
|
||||
params[key] = val
|
||||
del params['kwargs']
|
||||
|
||||
resourcePath = '{{path}}'
|
||||
resourcePath = resourcePath.replace('{format}', 'json')
|
||||
resource_path = '{{path}}'.replace('{format}', 'json')
|
||||
method = '{{httpMethod}}'
|
||||
|
||||
queryParams = {}
|
||||
headerParams = {}
|
||||
formParams = {}
|
||||
files = {}
|
||||
bodyParam = None
|
||||
path_params = dict({{#pathParams}}{{baseName}}=params.get('{{paramName}}'){{#hasMore}}, {{/hasMore}}{{/pathParams}})
|
||||
path_params = {k: v for k, v in iteritems(path_params) if v}
|
||||
query_params = dict({{#queryParams}}{{baseName}}=params.get('{{paramName}}'){{#hasMore}}, {{/hasMore}}{{/queryParams}})
|
||||
query_params = {k: v for k, v in iteritems(query_params) if v}
|
||||
header_params = dict({{#headerParams}}{{baseName}}=params.get('{{paramName}}'){{#hasMore}}, {{/hasMore}}{{/headerParams}})
|
||||
header_params = {k: v for k, v in iteritems(header_params) if v}
|
||||
form_params = dict({{#formParams}}{{^isFile}}{{baseName}}=params.get('{{paramName}}'){{#hasMore}}, {{/hasMore}}{{/isFile}}{{/formParams}})
|
||||
form_params = {k: v for k, v in iteritems(form_params) if v}
|
||||
files = dict({{#formParams}}{{#isFile}}{{baseName}}=params.get('{{paramName}}'){{#hasMore}}, {{/hasMore}}{{/isFile}}{{/formParams}})
|
||||
files = {k: v for k, v in iteritems(files) if v}
|
||||
body_params = {{#bodyParam}}params.get('{{paramName}}'){{/bodyParam}}{{^bodyParam}}None{{/bodyParam}}
|
||||
|
||||
accepts = [{{#produces}}'{{mediaType}}'{{#hasMore}}, {{/hasMore}}{{/produces}}]
|
||||
headerParams['Accept'] = ', '.join(accepts)
|
||||
header_params['Accept'] = ', '.join(accepts)
|
||||
|
||||
content_types = [{{#consumes}}'{{mediaType}}'{{#hasMore}}, {{/hasMore}}{{/consumes}}]
|
||||
headerParams['Content-Type'] = content_types[0] if len(content_types) > 0 else 'application/json'
|
||||
|
||||
{{#queryParams}}
|
||||
if ('{{paramName}}' in params):
|
||||
queryParams['{{baseName}}'] = self.apiClient.toPathValue(params['{{paramName}}'])
|
||||
{{/queryParams}}
|
||||
|
||||
{{#headerParams}}
|
||||
if ('{{paramName}}' in params):
|
||||
headerParams['{{baseName}}'] = params['{{paramName}}']
|
||||
{{/headerParams}}
|
||||
|
||||
{{#pathParams}}
|
||||
if ('{{paramName}}' in params):
|
||||
replacement = str(self.apiClient.toPathValue(params['{{paramName}}']))
|
||||
replacement = urllib.quote(replacement)
|
||||
resourcePath = resourcePath.replace('{' + '{{baseName}}' + '}',
|
||||
replacement)
|
||||
{{/pathParams}}
|
||||
|
||||
{{#formParams}}
|
||||
if ('{{paramName}}' in params):
|
||||
{{#notFile}}formParams['{{baseName}}'] = params['{{paramName}}']{{/notFile}}{{#isFile}}files['{{baseName}}'] = params['{{paramName}}']{{/isFile}}
|
||||
{{/formParams}}
|
||||
|
||||
{{#bodyParam}}
|
||||
if ('{{paramName}}' in params):
|
||||
bodyParam = params['{{paramName}}']
|
||||
{{/bodyParam}}
|
||||
|
||||
postData = (formParams if formParams else bodyParam)
|
||||
|
||||
response = self.apiClient.callAPI(resourcePath, method, queryParams,
|
||||
postData, headerParams, files=files)
|
||||
header_params['Content-Type'] = content_types[0] if len(content_types) > 0 else 'application/json'
|
||||
|
||||
response = self.api_client.call_api(resource_path, method, path_params, query_params, header_params,
|
||||
body=body_params, post_params=form_params, files=files,
|
||||
response={{#returnType}}'{{returnType}}'{{/returnType}}{{^returnType}}None{{/returnType}})
|
||||
{{#returnType}}
|
||||
if not response:
|
||||
return None
|
||||
|
||||
responseObject = self.apiClient.deserialize(response, '{{returnType}}')
|
||||
return responseObject
|
||||
return response
|
||||
{{/returnType}}
|
||||
{{newline}}
|
||||
{{newline}}
|
||||
{{/operation}}
|
||||
{{newline}}
|
||||
{{/operations}}
|
||||
{{newline}}
|
||||
|
||||
Reference in New Issue
Block a user