aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site
diff options
context:
space:
mode:
authorGravatar mbaruh <[email protected]>2023-03-25 21:26:07 +0300
committerGravatar mbaruh <[email protected]>2023-03-25 21:26:07 +0300
commit36bca58ff336f9d4b797a2c76f08775f9de7e9a7 (patch)
tree176d0694e00807fd7ee63f93d4dc9b886d28e633 /pydis_site
parentMerge the extra kwargs creation functions (diff)
Specify the common elements in the validation errors
Co-authored-by: Amrou <[email protected]>
Diffstat (limited to 'pydis_site')
-rw-r--r--pydis_site/apps/api/serializers.py34
1 files changed, 22 insertions, 12 deletions
diff --git a/pydis_site/apps/api/serializers.py b/pydis_site/apps/api/serializers.py
index e8c5869f..bfad18ab 100644
--- a/pydis_site/apps/api/serializers.py
+++ b/pydis_site/apps/api/serializers.py
@@ -247,20 +247,24 @@ class FilterSerializer(ModelSerializer):
"Infraction type is required with infraction duration or reason."
)
- if (
+ common_channels = (
set(get_field_value(data, "disabled_channels"))
& set(get_field_value(data, "enabled_channels"))
- ):
+ )
+ if common_channels:
raise ValidationError(
- "You can't have the same value in both enabled and disabled channels lists."
+ "You can't have the same value in both enabled and disabled channels lists:"
+ f" {', '.join(repr(channel) for channel in common_channels)}."
)
- if (
+ common_categories = (
set(get_field_value(data, "disabled_categories"))
& set(get_field_value(data, "enabled_categories"))
- ):
+ )
+ if common_categories:
raise ValidationError(
- "You can't have the same value in both enabled and disabled categories lists."
+ "You can't have the same value in both enabled and disabled categories lists:"
+ f" {', '.join(repr(category) for category in common_categories)}."
)
return data
@@ -333,17 +337,23 @@ class FilterListSerializer(ModelSerializer):
data.get('disabled_channels') is not None
and data.get('enabled_channels') is not None
):
- channels_collection = data['disabled_channels'] + data['enabled_channels']
- if len(channels_collection) != len(set(channels_collection)):
- raise ValidationError("Enabled and Disabled channels lists contain duplicates.")
+ common_channels = set(data['disabled_channels']) & set(data['enabled_channels'])
+ if common_channels:
+ raise ValidationError(
+ "You can't have the same value in both enabled and disabled channels lists:"
+ f" {', '.join(repr(channel) for channel in common_channels)}."
+ )
if (
data.get('disabled_categories') is not None
and data.get('enabled_categories') is not None
):
- categories_collection = data['disabled_categories'] + data['enabled_categories']
- if len(categories_collection) != len(set(categories_collection)):
- raise ValidationError("Enabled and Disabled categories lists contain duplicates.")
+ common_categories = set(data['disabled_categories']) & set(data['enabled_categories'])
+ if common_categories:
+ raise ValidationError(
+ "You can't have the same value in both enabled and disabled categories lists:"
+ f" {', '.join(repr(category) for category in common_categories)}."
+ )
return data