try to fix subscriptions
This commit is contained in:
parent
0ad1408f18
commit
e998865de5
|
|
@ -95,6 +95,14 @@ class CreateAndUpdateSubscribeSerializer(serializers.ModelSerializer):
|
|||
|
||||
return subscriber
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
if settings.USE_CELERY:
|
||||
send_subscribes_update_email.delay(instance.pk)
|
||||
else:
|
||||
send_subscribes_update_email(instance.pk)
|
||||
|
||||
return super().update(instance, validated_data)
|
||||
|
||||
|
||||
class UpdateSubscribeSerializer(serializers.ModelSerializer):
|
||||
"""Update with code Subscribe serializer."""
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
"""Notification app common views."""
|
||||
from django.shortcuts import get_object_or_404
|
||||
from rest_framework import generics, permissions
|
||||
from rest_framework import generics, permissions, status
|
||||
from rest_framework.response import Response
|
||||
|
||||
from notification import models
|
||||
|
|
@ -15,6 +15,19 @@ class CreateSubscribeView(generics.CreateAPIView):
|
|||
permission_classes = (permissions.AllowAny,)
|
||||
serializer_class = serializers.CreateAndUpdateSubscribeSerializer
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
data = request.data
|
||||
if 'email' in request.data:
|
||||
# we shouldn't create new subscriber if we have one
|
||||
subscriber = models.Subscriber.objects.filter(email=request.data['email']).first()
|
||||
if subscriber:
|
||||
data = subscriber # new serializer will simply update instance instead of creating another one
|
||||
serializer = self.get_serializer(data=data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
self.perform_create(serializer)
|
||||
headers = self.get_success_headers(serializer.data)
|
||||
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
|
||||
|
||||
|
||||
class UpdateSubscribeView(generics.UpdateAPIView):
|
||||
"""Subscribe info view."""
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user