Support oneOf

This commit is contained in:
Kitsune Ral 2018-07-28 22:54:59 +09:00
parent cd4fed509c
commit 88d97b06ae

View file

@ -286,7 +286,9 @@ def get_json_schema_object_fields(obj, enforce_title=False):
def process_data_type(prop, required=False, enforce_title=True): def process_data_type(prop, required=False, enforce_title=True):
prop = inherit_parents(prop) prop = inherit_parents(prop)
prop_type = prop['type'] prop_type = prop.get('oneOf', prop.get('type', []))
assert prop_type
tables = [] tables = []
enum_desc = None enum_desc = None
is_object = False is_object = False
@ -317,6 +319,15 @@ def process_data_type(prop, required=False, enforce_title=True):
tables = nested["tables"] tables = nested["tables"]
enum_desc = nested["enum_desc"] enum_desc = nested["enum_desc"]
elif isinstance(prop_type, list):
prop_title = []
for t in prop_type:
if isinstance(t, dict):
nested = process_data_type(t)
tables.extend(nested['tables'])
prop_title.append(nested['title'])
else:
prop_title.append(t)
else: else:
prop_title = prop_type prop_title = prop_type