Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.

Commit 607e4c8

Browse files
committed
Handle overload in existing template
1 parent f021296 commit 607e4c8

File tree

3 files changed

+76
-92
lines changed

3 files changed

+76
-92
lines changed

modules/openapi-json-schema-generator/src/main/resources/python/endpoint.handlebars

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -388,19 +388,18 @@ class BaseApi(api_client.Api):
388388

389389
@typing.overload
390390
def _{{operationId}}_oapg(
391-
{{> endpoint_args_overload selfType="api_client.Api" isSkip=false}}
391+
{{> endpoint_args isOverload=true skipDeserialization="False"}}
392392

393393
@typing.overload
394394
def _{{operationId}}_oapg(
395-
{{> endpoint_args_overload selfType="api_client.Api" isSkip=true}}
395+
{{> endpoint_args isOverload=true skipDeserialization="True"}}
396396

397397
@typing.overload
398398
def _{{operationId}}_oapg(
399-
{{> endpoint_args selfType="api_client.Api" }}
400-
...
399+
{{> endpoint_args isOverload=true skipDeserialization="null"}}
401400

402401
def _{{operationId}}_oapg(
403-
{{> endpoint_args selfType="api_client.Api" }}
402+
{{> endpoint_args isOverload=false skipDeserialization="null"}}
404403
"""
405404
{{#if summary}}
406405
{{summary}}
@@ -548,19 +547,18 @@ class {{operationIdCamelCase}}(BaseApi):
548547

549548
@typing.overload
550549
def {{operationId}}(
551-
{{> endpoint_args_overload selfType="BaseApi" isSkip=false}}
550+
{{> endpoint_args isOverload=true skipDeserialization="False"}}
552551

553552
@typing.overload
554553
def {{operationId}}(
555-
{{> endpoint_args_overload selfType="BaseApi" isSkip=true}}
554+
{{> endpoint_args isOverload=true skipDeserialization="True"}}
556555

557556
@typing.overload
558557
def {{operationId}}(
559-
{{> endpoint_args selfType="BaseApi" }}
560-
...
558+
{{> endpoint_args isOverload=true skipDeserialization="null"}}
561559

562560
def {{operationId}}(
563-
{{> endpoint_args selfType="BaseApi" }}
561+
{{> endpoint_args isOverload=false skipDeserialization="null"}}
564562
return self._{{operationId}}_oapg(
565563
{{> endpoint_args_passed }}
566564
)
@@ -571,19 +569,18 @@ class ApiFor{{httpMethod}}(BaseApi):
571569

572570
@typing.overload
573571
def {{httpMethod}}(
574-
{{> endpoint_args_overload selfType="BaseApi" isSkip=false}}
572+
{{> endpoint_args isOverload=true skipDeserialization="False"}}
575573

576574
@typing.overload
577575
def {{httpMethod}}(
578-
{{> endpoint_args_overload selfType="BaseApi" isSkip=true}}
576+
{{> endpoint_args isOverload=true skipDeserialization="True"}}
579577

580578
@typing.overload
581579
def {{httpMethod}}(
582-
{{> endpoint_args selfType="BaseApi" }}
583-
...
580+
{{> endpoint_args isOverload=true skipDeserialization="null"}}
584581

585582
def {{httpMethod}}(
586-
{{> endpoint_args selfType="BaseApi" }}
583+
{{> endpoint_args isOverload=false skipDeserialization="null"}}
587584
return self._{{operationId}}_oapg(
588585
{{> endpoint_args_passed }}
589586
)
Lines changed: 64 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,87 @@
1-
self: {{selfType}},
1+
self,
22
{{#if bodyParam}}
3-
{{#with bodyParam}}
4-
body: typing.Union[{{#each content}}{{#with this.schema}}{{baseName}}, {{> model_templates/schema_python_types }}{{/with}}{{/each}}{{#unless required}}schemas.Unset] = schemas.unset{{else}}]{{/unless}},
5-
{{/with}}
3+
{{#with bodyParam}}
4+
{{#if isOverload}}
5+
body: typing.Union[{{#each content}}{{#with this.schema}}{{baseName}},{{> model_templates/schema_python_types }}{{/with}}{{/each}}{{#unless required}}schemas.Unset] = schemas.unset{{else}}]{{/unless}},
6+
{{else}}
7+
body,
8+
{{/if}}
9+
{{/with}}
610
{{/if}}
711
{{#if queryParams}}
8-
query_params: RequestQueryParams = frozendict.frozendict(),
12+
query_params{{#if isOverload}}: RequestQueryParams{{/if}} = frozendict.frozendict(),
913
{{/if}}
1014
{{#if headerParams}}
11-
header_params: RequestHeaderParams = frozendict.frozendict(),
15+
header_params{{#if isOverload}}: RequestHeaderParams{{/if}} = frozendict.frozendict(),
1216
{{/if}}
1317
{{#if pathParams}}
14-
path_params: RequestPathParams = frozendict.frozendict(),
18+
path_params{{#if isOverload}}: RequestPathParams{{/if}} = frozendict.frozendict(),
1519
{{/if}}
1620
{{#if cookieParams}}
17-
cookie_params: RequestCookieParams = frozendict.frozendict(),
21+
cookie_params{{#if isOverload}}: RequestCookieParams{{/if}} = frozendict.frozendict(),
1822
{{/if}}
1923
{{#with bodyParam}}
20-
{{#each content}}
21-
{{#if @first}}
22-
content_type: str = '{{{@key}}}',
23-
{{/if}}
24-
{{/each}}
24+
{{#each content}}
25+
{{#if @first}}
26+
content_type{{#if isOverload}}: str{{/if}} = '{{{@key}}}',
27+
{{/if}}
28+
{{/each}}
2529
{{/with}}
2630
{{#if produces}}
27-
accept_content_types: typing.Tuple[str] = _all_accept_content_types,
31+
accept_content_types{{#if isOverload}}: typing.Tuple[str]{{/if}} = _all_accept_content_types,
2832
{{/if}}
2933
{{#if servers}}
30-
host_index: typing.Optional[int] = None,
34+
host_index{{#if isOverload}}: typing.Optional[int]{{/if}} = None,
3135
{{/if}}
32-
stream: bool = False,
33-
timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
36+
stream{{#if isOverload}}: bool{{/if}} = False,
37+
timeout{{#if isOverload}}: typing.Optional[typing.Union[int, typing.Tuple]]{{/if}} = None,
38+
{{#if isOverload}}
39+
{{#eq skipDeserialization "True"}}
40+
skip_deserialization: typing_extensions.Literal[True] = True,
41+
{{/eq}}
42+
{{#eq skipDeserialization "False"}}
43+
skip_deserialization: typing_extensions.Literal[False] = False,
44+
{{/eq}}
45+
{{#eq skipDeserialization "null"}}
3446
skip_deserialization: bool = False,
47+
{{/eq}}
48+
{{else}}
49+
skip_deserialization = False,
50+
{{/if}}
51+
{{#eq skipDeserialization "True"}}
52+
) -> api_client.ApiResponseWithoutDeserialization:
53+
{{/eq}}
54+
{{#eq skipDeserialization "False"}}
3555
) -> typing.Union[
36-
{{#each responses}}
37-
{{#if isDefault}}
56+
{{#each responses}}
57+
{{#if isDefault}}
3858
ApiResponseForDefault,
39-
{{else}}
40-
{{#if is2xx}}
59+
{{else}}
60+
{{#if is2xx}}
4161
ApiResponseFor{{code}},
62+
{{/if}}
4263
{{/if}}
64+
{{/each}}
65+
]:
66+
{{/eq}}
67+
{{#eq skipDeserialization "null"}}
68+
{{#if isOverload}}
69+
) -> typing.Union[
70+
{{#each responses}}
71+
{{#if isDefault}}
72+
ApiResponseForDefault,
73+
{{else}}
74+
{{#if is2xx}}
75+
ApiResponseFor{{code}},
76+
{{/if}}
77+
{{/if}}
78+
{{/each}}
79+
api_client.ApiResponseWithoutDeserialization,
80+
]:
4381
{{else}}
44-
api_client.ApiResponse,
82+
):
4583
{{/if}}
46-
{{/each}}
47-
api_client.ApiResponseWithoutDeserialization
48-
]:
84+
{{/eq}}
85+
{{#if isOverload}}
86+
...
87+
{{/if}}

modules/openapi-json-schema-generator/src/main/resources/python/endpoint_args_overload.handlebars

Lines changed: 0 additions & 52 deletions
This file was deleted.

0 commit comments

Comments
 (0)