from rest_framework import generics, status from rest_framework.response import Response from rest_framework.views import APIView from .models import User from .serializers import UserSerializer, UserUpdateSerializer, FCMTokenSerializer class MeView(generics.RetrieveUpdateAPIView): def get_serializer_class(self): if self.request.method == "PATCH": return UserUpdateSerializer return UserSerializer def get_object(self): return self.request.user class FCMTokenView(APIView): def put(self, request): serializer = FCMTokenSerializer(data=request.data) serializer.is_valid(raise_exception=True) request.user.fcm_token = serializer.validated_data["token"] request.user.save(update_fields=["fcm_token"]) return Response(status=status.HTTP_204_NO_CONTENT)