Skip to content

Commit 52da82c

Browse files
authored
Fix nested array oneOf imports (#2150)
1 parent b8784cb commit 52da82c

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

.generator/src/generator/openapi.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,12 @@ def get_references_for_model(model, model_name):
264264
if formatter.is_list_model_whitelisted(items_name):
265265
result[items_name] = None
266266
elif definition["items"].get("type") == "array":
267-
result[formatter.get_name(definition["items"]["items"])] = None
267+
nested_model = definition["items"]["items"]
268+
nested_model_name = formatter.get_name(nested_model)
269+
result[nested_model_name] = None
270+
result.update(
271+
{k: None for k in get_oneof_references_for_model(nested_model, nested_model_name)}
272+
)
268273
elif find_non_primitive_type(definition["items"]):
269274
result[items_name] = None
270275
elif definition.get("properties") and top_name:
@@ -428,13 +433,16 @@ def parameters(operation):
428433
if "multipart/form-data" in operation["requestBody"]["content"]:
429434
parent = operation["requestBody"]["content"]["multipart/form-data"]["schema"]
430435
for name, schema in parent["properties"].items():
431-
yield name, {
432-
"in": "form",
433-
"schema": schema,
434-
"name": name,
435-
"description": schema.get("description"),
436-
"required": name in parent.get("required", []),
437-
}
436+
yield (
437+
name,
438+
{
439+
"in": "form",
440+
"schema": schema,
441+
"name": name,
442+
"description": schema.get("description"),
443+
"required": name in parent.get("required", []),
444+
},
445+
)
438446
else:
439447
name = operation.get("x-codegen-request-body-name", "body")
440448
yield name, operation["requestBody"]

0 commit comments

Comments
 (0)