Files
pi-ku/backend/letters/views.py
T

31 lines
1.1 KiB
Python

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
class LetterView(generics.ListCreateAPIView):
serializer_class = LetterSerializer
# enforce auth guard
permission_classes = [IsAuthenticated]
def get_queryset(self):
"""return only letters of the authenticated user"""
return Letter.objects.filter(user=self.request.user)
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)