Skip to content

Commit 6a8cd69

Browse files
authored
Merge pull request #72 from zrq495/dont_modify_schema
Dont modify schema
2 parents 3c5360c + e1910b7 commit 6a8cd69

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

swagger_py_codegen/jsonschema.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ def _process(self):
106106
yield Schema(build_data(self.swagger))
107107

108108

109-
def merge_default(schema, value):
109+
def merge_default(schema, value, get_first=True):
110110
# TODO: more types support
111111
type_defaults = {
112112
'integer': 9573,
@@ -116,7 +116,10 @@ def merge_default(schema, value):
116116
'boolean': False
117117
}
118118

119-
return normalize(schema, value, type_defaults)[0]
119+
results = normalize(schema, value, type_defaults)
120+
if get_first:
121+
return results[0]
122+
return results
120123

121124

122125
def build_default(schema):
@@ -172,10 +175,6 @@ def _normalize_dict(schema, data):
172175
for key, _schema in schema.get('properties', {}).iteritems():
173176
# set default
174177
type_ = _schema.get('type', 'object')
175-
if ('default' not in _schema
176-
and key in schema.get('required', [])
177-
and type_ in required_defaults):
178-
_schema['default'] = required_defaults[type_]
179178

180179
# get value
181180
value, has_key = data.get_check(key)
@@ -184,8 +183,11 @@ def _normalize_dict(schema, data):
184183
elif 'default' in _schema:
185184
result[key] = _schema['default']
186185
elif key in schema.get('required', []):
187-
errors.append(dict(name='property_missing',
188-
message='`%s` is required' % key))
186+
if type_ in required_defaults:
187+
result[key] = required_defaults[type_]
188+
else:
189+
errors.append(dict(name='property_missing',
190+
message='`%s` is required' % key))
189191

190192
for _schema in schema.get('allOf', []):
191193
rs_component = _normalize(_schema, data)

swagger_py_codegen/templates/flask/validators.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class FlaskValidatorAdaptor(object):
6363
def validate(self, value):
6464
value = self.type_convert(value)
6565
errors = list(e.message for e in self.validator.iter_errors(value))
66-
return merge_default(self.validator.schema, value), errors
66+
return normalize(self.validator.schema, value)[0], errors
6767

6868

6969
def request_validate(view):

0 commit comments

Comments
 (0)