feat: add PUT endpoint to update letters and manage associated images

This commit is contained in:
Your Name
2026-04-12 04:08:14 +05:30
parent d6076bca16
commit 47474f8ae2
4 changed files with 64 additions and 6 deletions
+13 -4
View File
@@ -1,5 +1,6 @@
from rest_framework import generics
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from letters.models import Letter, LetterImage
from letters.serializers import LetterSerializer
@@ -14,8 +15,16 @@ class LetterView(generics.ListCreateAPIView):
"""return only letters of the authenticated user"""
return Letter.objects.filter(user=self.request.user)
def perform_create(self, serializer):
letter = serializer.save(user=self.request.user)
image_files = self.request.FILES.getlist("image_files")
for image_file in image_files:
def put(self, request, public_id):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
letter, created = Letter.objects.update_or_create(
public_id=public_id, user=request.user, defaults=serializer.validated_data
)
LetterImage.objects.filter(letter=letter).delete()
for image_file in request.FILES.getlist("image_files"):
LetterImage.objects.create(letter=letter, file=image_file, file_name=image_file.name)
return Response(serializer.data, status=201 if created else 200)