Fix: fix some API crashes (#10196)

This commit is contained in:
shamoon
2025-06-16 22:44:39 -07:00
committed by GitHub
parent de12023311
commit e4fd008441
6 changed files with 124 additions and 7 deletions

View File

@@ -108,18 +108,20 @@ class MailRuleSerializer(OwnedObjectSerializer):
return instance
def create(self, validated_data):
if "assign_tags" in validated_data:
assign_tags = validated_data.pop("assign_tags")
assign_tags = validated_data.pop("assign_tags", [])
mail_rule = super().create(validated_data)
if assign_tags:
mail_rule.assign_tags.set(assign_tags)
return mail_rule
def validate(self, attrs):
action = attrs.get("action")
action_parameter = attrs.get("action_parameter")
if (
attrs["action"] == MailRule.MailAction.TAG
or attrs["action"] == MailRule.MailAction.MOVE
) and attrs["action_parameter"] is None:
action in [MailRule.MailAction.TAG, MailRule.MailAction.MOVE]
and not action_parameter
):
raise serializers.ValidationError("An action parameter is required.")
return attrs