try to fix subscriptions
This commit is contained in:
parent
0ad1408f18
commit
e998865de5
|
|
@ -95,6 +95,14 @@ class CreateAndUpdateSubscribeSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
return subscriber
|
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):
|
class UpdateSubscribeSerializer(serializers.ModelSerializer):
|
||||||
"""Update with code Subscribe serializer."""
|
"""Update with code Subscribe serializer."""
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"""Notification app common views."""
|
"""Notification app common views."""
|
||||||
from django.shortcuts import get_object_or_404
|
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 rest_framework.response import Response
|
||||||
|
|
||||||
from notification import models
|
from notification import models
|
||||||
|
|
@ -15,6 +15,19 @@ class CreateSubscribeView(generics.CreateAPIView):
|
||||||
permission_classes = (permissions.AllowAny,)
|
permission_classes = (permissions.AllowAny,)
|
||||||
serializer_class = serializers.CreateAndUpdateSubscribeSerializer
|
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):
|
class UpdateSubscribeView(generics.UpdateAPIView):
|
||||||
"""Subscribe info view."""
|
"""Subscribe info view."""
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user