Skip to content

Commit cc7c151

Browse files
Merge pull request #12 from GDATAAdvancedAnalytics/fix-returntype-none
Fix support for API endpoints that return nothing
2 parents a130a3b + 27421c4 commit cc7c151

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed

Diff for: src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2

+6-4
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,14 @@ async def {{ operation_id }}({{ params }}) -> {% if return_type.type is none or
2424
raise HTTPException(inital_response.status, f'{{ operationId }} failed with status code: {inital_response.status}')
2525
response = await inital_response.json()
2626

27-
{% if return_type.complex_type %}
28-
{% if return_type.list_type is none %}
27+
{% if return_type.type is none or return_type.type.converted_type is none %}
28+
return None
29+
{% elif return_type.complex_type %}
30+
{%- if return_type.list_type is none %}
2931
return {{ return_type.type.converted_type }}(**response.json()) if response.json() is not None else {{ return_type.type.converted_type }}()
30-
{% else %}
32+
{%- else %}
3133
return [{{ return_type.list_type }}(**item) for item in response.json()]
32-
{% endif %}
34+
{%- endif %}
3335
{% else %}
3436
return response.json()
3537
{% endif %}

Diff for: src/openapi_python_generator/language_converters/python/templates/httpx.jinja2

+7-4
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,15 @@ with httpx.Client(base_url=base_path, verify=APIConfig.verify) as client:
3636

3737
if response.status_code != {{ return_type.status_code }}:
3838
raise HTTPException(response.status_code, f'{{ operationId }} failed with status code: {response.status_code}')
39-
{% if return_type.complex_type %}
40-
{% if return_type.list_type is none %}
39+
40+
{% if return_type.type is none or return_type.type.converted_type is none %}
41+
return None
42+
{% elif return_type.complex_type %}
43+
{%- if return_type.list_type is none %}
4144
return {{ return_type.type.converted_type }}(**response.json()) if response.json() is not None else {{ return_type.type.converted_type }}()
42-
{% else %}
45+
{%- else %}
4346
return [{{ return_type.list_type }}(**item) for item in response.json()]
44-
{% endif %}
47+
{%- endif %}
4548
{% else %}
4649
return response.json()
4750
{% endif %}

Diff for: src/openapi_python_generator/language_converters/python/templates/requests.jinja2

+7-4
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,15 @@ def {{ operation_id }}({{ params }}) -> {% if return_type.type is none or return
3030
)
3131
if response.status_code != {{ return_type.status_code }}:
3232
raise HTTPException(response.status_code, f'{{ operationId }} failed with status code: {response.status_code}')
33-
{% if return_type.complex_type %}
34-
{% if return_type.list_type is none %}
33+
34+
{% if return_type.type is none or return_type.type.converted_type is none %}
35+
return None
36+
{% elif return_type.complex_type %}
37+
{%- if return_type.list_type is none %}
3538
return {{ return_type.type.converted_type }}(**response.json()) if response.json() is not None else {{ return_type.type.converted_type }}()
36-
{% else %}
39+
{%- else %}
3740
return [{{ return_type.list_type }}(**item) for item in response.json()]
38-
{% endif %}
41+
{%- endif %}
3942
{% else %}
4043
return response.json()
4144
{% endif %}

0 commit comments

Comments
 (0)