mirror of
https://github.com/ramvignesh-b/pi-ku.git
synced 2026-05-04 08:56:52 +00:00
feat: add PUT endpoint to update letters and manage associated images
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user