Small improvements in ValidateCustomFields()
This commit is contained in:
parent
590d075735
commit
ff7101c3fe
@ -10,30 +10,34 @@ log = logging.getLogger(__name__)
|
|||||||
|
|
||||||
class ValidateCustomFields(Validator):
|
class ValidateCustomFields(Validator):
|
||||||
def convert_properties(self, properties, node_schema):
|
def convert_properties(self, properties, node_schema):
|
||||||
|
"""Converts datetime strings and ObjectId strings to actual Python objects."""
|
||||||
|
|
||||||
date_format = current_app.config['RFC1123_DATE_FORMAT']
|
date_format = current_app.config['RFC1123_DATE_FORMAT']
|
||||||
|
|
||||||
for prop in node_schema:
|
for prop in node_schema:
|
||||||
if not prop in properties:
|
if prop not in properties:
|
||||||
continue
|
continue
|
||||||
schema_prop = node_schema[prop]
|
schema_prop = node_schema[prop]
|
||||||
prop_type = schema_prop['type']
|
prop_type = schema_prop['type']
|
||||||
|
|
||||||
if prop_type == 'dict':
|
if prop_type == 'dict':
|
||||||
properties[prop] = self.convert_properties(
|
properties[prop] = self.convert_properties(
|
||||||
properties[prop], schema_prop['schema'])
|
properties[prop], schema_prop['schema'])
|
||||||
if prop_type == 'list':
|
elif prop_type == 'list':
|
||||||
if properties[prop] in ['', '[]']:
|
if properties[prop] in ['', '[]']:
|
||||||
properties[prop] = []
|
properties[prop] = []
|
||||||
for k, val in enumerate(properties[prop]):
|
if 'schema' in schema_prop:
|
||||||
if not 'schema' in schema_prop:
|
for k, val in enumerate(properties[prop]):
|
||||||
continue
|
item_schema = {'item': schema_prop['schema']}
|
||||||
item_schema = {'item': schema_prop['schema']}
|
item_prop = {'item': properties[prop][k]}
|
||||||
item_prop = {'item': properties[prop][k]}
|
properties[prop][k] = self.convert_properties(
|
||||||
properties[prop][k] = self.convert_properties(
|
item_prop, item_schema)['item']
|
||||||
item_prop, item_schema)['item']
|
|
||||||
# Convert datetime string to RFC1123 datetime
|
# Convert datetime string to RFC1123 datetime
|
||||||
elif prop_type == 'datetime':
|
elif prop_type == 'datetime':
|
||||||
prop_val = properties[prop]
|
prop_val = properties[prop]
|
||||||
properties[prop] = datetime.strptime(prop_val, date_format)
|
properties[prop] = datetime.strptime(prop_val, date_format)
|
||||||
|
|
||||||
elif prop_type == 'objectid':
|
elif prop_type == 'objectid':
|
||||||
prop_val = properties[prop]
|
prop_val = properties[prop]
|
||||||
if prop_val:
|
if prop_val:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user