feat: implement encrypted metadata support and fix public_id handling in letter serialization

This commit is contained in:
Your Name
2026-04-12 05:14:02 +05:30
parent 99ed561570
commit 998ad848b0
4 changed files with 28 additions and 9 deletions
+1 -1
View File
@@ -30,7 +30,7 @@ class LetterSerializer(serializers.ModelSerializer):
"updated_at",
"images",
] # user to be fetched from request
read_only_fields = ["public_id", "created_at", "updated_at"]
read_only_fields = ["created_at", "updated_at"]
def validate(self, data):
if (data.get("encrypted_content") or data.get("encrypted_metadata")) and not data.get("encrypted_dek"):
+5 -1
View File
@@ -16,7 +16,11 @@ class LetterView(generics.ListCreateAPIView):
return Letter.objects.filter(user=self.request.user)
def put(self, request, public_id):
serializer = self.get_serializer(data=request.data)
data = request.data.copy()
# remove public_id from data to avoid UniqueValidator firing
# since we use it from the URL for update_or_create anyway
data.pop("public_id", None)
serializer = self.get_serializer(data=data)
serializer.is_valid(raise_exception=True)