aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/api/serializers.py
diff options
context:
space:
mode:
authorGravatar mbaruh <[email protected]>2021-12-25 20:18:02 +0200
committerGravatar mbaruh <[email protected]>2021-12-25 20:18:02 +0200
commitc082ad818608fd52238e61f9c69d99cfb2aa503b (patch)
tree47cd3edcd407ecd70b2e1935ba4fac53077e46ca /pydis_site/apps/api/serializers.py
parentCorrect 'Redirect' FilterLists' default values. (diff)
Merged infraction and notification settings in JSON
The settings for infracting and notifying the user were merged under one field, which is renamed to "infraction_and_notification". The only place which sends a message in the server by default is the antimalware, the rest try to DM the user first, and antimalware can do the same. This avoids complications which may result from the filtering cog trying to send two messages: one for the defined server message, and another for a failed DM.
Diffstat (limited to 'pydis_site/apps/api/serializers.py')
-rw-r--r--pydis_site/apps/api/serializers.py28
1 files changed, 12 insertions, 16 deletions
diff --git a/pydis_site/apps/api/serializers.py b/pydis_site/apps/api/serializers.py
index 66236d92..91aac822 100644
--- a/pydis_site/apps/api/serializers.py
+++ b/pydis_site/apps/api/serializers.py
@@ -142,13 +142,18 @@ BASE_SETTINGS_FIELDS = (
"delete_messages",
"send_alert"
)
-INFRACTION_FIELDS = ("infraction_type", "infraction_reason", "infraction_duration", "dm_content")
+INFRACTION_AND_NOTIFICATION_FIELDS = (
+ "infraction_type",
+ "infraction_reason",
+ "infraction_duration",
+ "dm_content",
+ "dm_embed"
+)
CHANNEL_SCOPE_FIELDS = (
"disabled_channels",
"disabled_categories",
"enabled_channels",
)
-SERVER_MESSAGE_FIELDS = ("server_message_text", "server_message_embed")
MENTIONS_FIELDS = ("ping_type", "dm_ping_type")
SETTINGS_FIELDS = ALWAYS_OPTIONAL_SETTINGS + REQUIRED_FOR_FILTER_LIST_SETTINGS
@@ -208,8 +213,10 @@ class FilterSerializer(ModelSerializer):
schema_settings = {
"settings":
{name: getattr(instance, name) for name in BASE_SETTINGS_FIELDS}
- | {"infraction": {name: getattr(instance, name) for name in INFRACTION_FIELDS}}
| {
+ "infraction_and_notification":
+ {name: getattr(instance, name) for name in INFRACTION_AND_NOTIFICATION_FIELDS}
+ } | {
"channel_scope":
{name: getattr(instance, name) for name in CHANNEL_SCOPE_FIELDS}
} | {
@@ -219,12 +226,6 @@ class FilterSerializer(ModelSerializer):
for schema_field_name in MENTIONS_FIELDS
}
}
- } | {
- "server_message":
- {
- schema_field_name: getattr(instance, schema_field_name)
- for schema_field_name in SERVER_MESSAGE_FIELDS
- }
}
schema_base = {name: getattr(instance, name) for name in BASE_FILTER_FIELDS} | \
{"filter_list": instance.filter_list.id}
@@ -306,8 +307,8 @@ class FilterListSerializer(ModelSerializer):
| {"filters": filters}
schema_settings_base = {name: getattr(instance, name) for name in BASE_SETTINGS_FIELDS}
schema_settings_categories = {
- "infraction":
- {name: getattr(instance, name) for name in INFRACTION_FIELDS}} \
+ "infraction_and_notification":
+ {name: getattr(instance, name) for name in INFRACTION_AND_NOTIFICATION_FIELDS}} \
| {
"channel_scope":
{name: getattr(instance, name) for name in CHANNEL_SCOPE_FIELDS}} | {
@@ -315,11 +316,6 @@ class FilterListSerializer(ModelSerializer):
schema_field_name: getattr(instance, schema_field_name)
for schema_field_name in MENTIONS_FIELDS
}
- } | {
- "server_message": {
- schema_field_name: getattr(instance, schema_field_name)
- for schema_field_name in SERVER_MESSAGE_FIELDS
- }
}
return schema_base | {"settings": schema_settings_base | schema_settings_categories}