serializer
This commit is contained in:
7
SubscribesApp/serializers.py
Normal file
7
SubscribesApp/serializers.py
Normal 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()
|
||||||
@@ -5,32 +5,39 @@ from rest_framework.permissions import IsAuthenticated
|
|||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
from SubscribesApp.models import SubscribeForUser
|
from SubscribesApp.models import SubscribeForUser
|
||||||
|
from SubscribesApp.serializers import SubscribersSerializer
|
||||||
|
|
||||||
|
|
||||||
class SubscribersView(APIView):
|
class SubscribersView(APIView):
|
||||||
# permission_classes = [IsAuthenticated]
|
# permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
def post(self, request):
|
def post(self, request):
|
||||||
data = request.data
|
serializer = SubscribersSerializer(data=request.data)
|
||||||
email = data['email']
|
|
||||||
email_notification = data['email_notification']
|
|
||||||
auto_subscribe = data['auto_subscribe']
|
|
||||||
|
|
||||||
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:
|
user = User.objects.filter(email=email)
|
||||||
subscribe_for_user = SubscribeForUser.objects.filter(user_id=user[0].id)
|
|
||||||
|
|
||||||
if email_notification:
|
if user:
|
||||||
subscribe_for_user.update(receive_finish_subscribe_msg=True)
|
|
||||||
|
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:
|
else:
|
||||||
subscribe_for_user.update(receive_finish_subscribe_msg=False)
|
return JsonResponse({"message": "User not found"}, status=status.HTTP_404_NOT_FOUND)
|
||||||
|
else:
|
||||||
if auto_subscribe:
|
return JsonResponse(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||||
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)
|
|
||||||
Reference in New Issue
Block a user