feat: add encrypted_dek field to Letter model and enforce its presence during serialization

This commit is contained in:
Your Name
2026-04-11 18:37:36 +05:30
parent 96f867f139
commit bbdf4a41d4
5 changed files with 44 additions and 2 deletions
+8
View File
@@ -12,6 +12,7 @@ class LetterSerializer(serializers.ModelSerializer):
"status",
"encrypted_content",
"encrypted_metadata",
"encrypted_dek",
"unlock_at",
"sealed_at",
"created_at",
@@ -22,3 +23,10 @@ class LetterSerializer(serializers.ModelSerializer):
def create(self, validated_data):
user = self.context["request"].user # get user from access token
return Letter.objects.create(user=user, **validated_data)
def validate(self, data):
if (data.get("encrypted_content") or data.get("encrypted_metadata")) and not data.get("encrypted_dek"):
raise serializers.ValidationError(
"encrypted_dek is required when encrypted_content and encrypted_metadata are present"
)
return data