serializer

This commit is contained in:
Philip
2024-03-05 20:06:38 +03:00
parent fa116c08c1
commit 15c9d589fe
2 changed files with 33 additions and 19 deletions

View File

@@ -0,0 +1,7 @@
from rest_framework import serializers
class SubscribersSerializer(serializers.Serializer):
email = serializers.EmailField(error_messages={'invalid': 'Invalid email'})
email_notification = serializers.BooleanField()
auto_subscribe = serializers.BooleanField()

View File

@@ -5,32 +5,39 @@ 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):
data = request.data
email = data['email']
email_notification = data['email_notification']
auto_subscribe = data['auto_subscribe']
serializer = SubscribersSerializer(data=request.data)
user = User.objects.filter(email=email)
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']
if user:
subscribe_for_user = SubscribeForUser.objects.filter(user_id=user[0].id)
user = User.objects.filter(email=email)
if email_notification:
subscribe_for_user.update(receive_finish_subscribe_msg=True)
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:
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)
return JsonResponse({"message": "User not found"}, status=status.HTTP_404_NOT_FOUND)
return JsonResponse({"message": "User not found"}, status=status.HTTP_404_NOT_FOUND)
else:
return JsonResponse(serializer.errors, status=status.HTTP_400_BAD_REQUEST)