from django.contrib.auth.models import User from django.http import JsonResponse from rest_framework import status from rest_framework.permissions import IsAuthenticated from rest_framework.views import APIView from SubscribesApp.models import SubscribeForUser from SubscribesApp.serializers import SubscribersSerializer class SubscribersView(APIView): # permission_classes = [IsAuthenticated] def post(self, request): serializer = SubscribersSerializer(data=request.data) if serializer.is_valid(): validated_data = serializer.validated_data email = validated_data['email'] email_notification = validated_data['email_notification'] auto_subscribe = validated_data['auto_subscribe'] user = User.objects.filter(email=email) if user: subscribe_for_user = SubscribeForUser.objects.filter(user_id=user[0].id) if email_notification: subscribe_for_user.update(receive_finish_subscribe_msg=True) else: subscribe_for_user.update(receive_finish_subscribe_msg=False) if auto_subscribe: subscribe_for_user.update(auto_continue=True) else: subscribe_for_user.update(auto_continue=False) return JsonResponse({"message": "Subscriptions updated successfully"}, status=status.HTTP_200_OK) else: return JsonResponse({"message": "User not found"}, status=status.HTTP_404_NOT_FOUND) else: return JsonResponse(serializer.errors, status=status.HTTP_400_BAD_REQUEST)