fix: update letter update logic to use PUT method and correct user reference

This commit is contained in:
Your Name
2026-04-12 04:15:20 +05:30
parent 47474f8ae2
commit ab080d4266
2 changed files with 4 additions and 2 deletions
+2 -1
View File
@@ -55,13 +55,14 @@ class LetterAPITest(APITestCase):
def test_create_draft_letter_api(self): def test_create_draft_letter_api(self):
"""Test API can successfully create a basic draft letter.""" """Test API can successfully create a basic draft letter."""
payload = { payload = {
"public_id": "4281edcc-5459-4ff2-bb5e-669fb44e0757",
"type": "KEPT", "type": "KEPT",
"encrypted_content": "enc_xyz==", "encrypted_content": "enc_xyz==",
"encrypted_metadata": "enc_meta==", "encrypted_metadata": "enc_meta==",
"encrypted_dek": "enc_dek==", "encrypted_dek": "enc_dek==",
} }
response = self.client.post(self.url, payload) response = self.client.put(self.url + payload["public_id"] + "/", payload)
self.assertEqual(response.status_code, 201) self.assertEqual(response.status_code, 201)
self.assertEqual(Letter.objects.count(), 1) self.assertEqual(Letter.objects.count(), 1)
self.assertEqual(Letter.objects.get().status, "DRAFT") self.assertEqual(Letter.objects.get().status, "DRAFT")
+2 -1
View File
@@ -17,10 +17,11 @@ class LetterView(generics.ListCreateAPIView):
def put(self, request, public_id): def put(self, request, public_id):
serializer = self.get_serializer(data=request.data) serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
letter, created = Letter.objects.update_or_create( letter, created = Letter.objects.update_or_create(
public_id=public_id, user=request.user, defaults=serializer.validated_data public_id=public_id, user=self.request.user, defaults=serializer.validated_data
) )
LetterImage.objects.filter(letter=letter).delete() LetterImage.objects.filter(letter=letter).delete()