API: More validation in custom fields on event serializers

This commit is contained in:
Raphael Michel
2020-08-05 11:26:11 +02:00
parent ca2dd0d6b6
commit b6f47f6f4a

View File

@@ -29,6 +29,9 @@ class MetaDataField(Field):
}
def to_internal_value(self, data):
if not isinstance(data, dict) or not all(isinstance(k, str) for k in data.keys()) or not all(isinstance(k, str) for k in data.values()):
return ValidationError('meta_data needs to be an object (str -> str).')
return {
'meta_data': data
}
@@ -42,6 +45,8 @@ class MetaPropertyField(Field):
}
def to_internal_value(self, data):
if not isinstance(data, dict) or not all(isinstance(k, str) for k in data.keys()) or not all(isinstance(k, str) for k in data.values()):
return ValidationError('item_meta_properties needs to be an object (str -> str).')
return {
'item_meta_properties': data
}
@@ -58,6 +63,8 @@ class SeatCategoryMappingField(Field):
}
def to_internal_value(self, data):
if not isinstance(data, dict) or not all(isinstance(k, str) for k in data.keys()) or not all(isinstance(k, int) for k in data.values()):
return ValidationError('seat_category_mapping needs to be an object (str -> int).')
return {
'seat_category_mapping': data or {}
}