aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/api/models
diff options
context:
space:
mode:
authorGravatar Sebastiaan Zeeff <[email protected]>2019-08-22 20:38:51 +0200
committerGravatar Sebastiaan Zeeff <[email protected]>2019-08-23 15:40:53 +0200
commit8066a3360b23508d3fb2da3d37d2c63f2630faff (patch)
tree83479317a1c455d9ef0bc15990dfad8620ec20f2 /pydis_site/apps/api/models
parentAdding missing 'inline' parameter to embed fields attribute validator (diff)
Adding required fields validator and tests to embed fields
Diffstat (limited to 'pydis_site/apps/api/models')
-rw-r--r--pydis_site/apps/api/models/bot/tag.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/pydis_site/apps/api/models/bot/tag.py b/pydis_site/apps/api/models/bot/tag.py
index 0dc4830c..fc0db4e4 100644
--- a/pydis_site/apps/api/models/bot/tag.py
+++ b/pydis_site/apps/api/models/bot/tag.py
@@ -23,10 +23,15 @@ def validate_tag_embed_fields(fields):
'inline': (is_bool_validator,),
}
+ required_fields = ('name', 'value')
+
for field in fields:
if not isinstance(field, Mapping):
raise ValidationError("Embed fields must be a mapping.")
+ if not all(required_field in field for required_field in required_fields):
+ raise ValidationError("Embed fields must contain both a 'name' and a 'value' field.")
+
for field_name, value in field.items():
if field_name not in field_validators:
raise ValidationError(f"Unknown embed field field: {field_name!r}.")