diff --git a/apps/notification/models.py b/apps/notification/models.py index a176034e..4de7d94f 100644 --- a/apps/notification/models.py +++ b/apps/notification/models.py @@ -133,7 +133,7 @@ class Subscriber(ProjectBaseMixin): self.update_code = generate_string_code() return super(Subscriber, self).save(*args, **kwargs) - def unsubscribe(self, query: dict): + def unsubscribe(self): """Unsubscribe user.""" self.subscribe_set.update( @@ -147,9 +147,9 @@ class Subscriber(ProjectBaseMixin): ) if settings.USE_CELERY: - send_unsubscribe_email.delay(self.email) + send_unsubscribe_email.delay(self.pk) else: - send_unsubscribe_email(self.email) + send_unsubscribe_email(self.pk) @property def send_to(self): diff --git a/apps/notification/serializers/common.py b/apps/notification/serializers/common.py index 282a763c..3a061498 100644 --- a/apps/notification/serializers/common.py +++ b/apps/notification/serializers/common.py @@ -90,9 +90,9 @@ class CreateAndUpdateSubscribeSerializer(serializers.ModelSerializer): subscriber = models.Subscriber.objects.make_subscriber(**validated_data) if settings.USE_CELERY: - send_subscribes_update_email.delay(subscriber.email) + send_subscribes_update_email.delay(subscriber.pk) else: - send_subscribes_update_email(subscriber.email) + send_subscribes_update_email(subscriber.pk) return subscriber diff --git a/apps/notification/tasks.py b/apps/notification/tasks.py index cea15287..74f0e814 100644 --- a/apps/notification/tasks.py +++ b/apps/notification/tasks.py @@ -11,8 +11,8 @@ from django.utils.translation import gettext_lazy as _ @shared_task -def send_subscribes_update_email(email): - subscriber = models.Subscriber.objects.filter(email=email).first() +def send_subscribes_update_email(subscriber_id): + subscriber = models.Subscriber.objects.get(pk=subscriber_id) if subscriber is None: return @@ -53,8 +53,8 @@ def send_subscribes_update_email(email): @shared_task -def send_unsubscribe_email(email): - subscriber = models.Subscriber.objects.filter(email=email).first() +def send_unsubscribe_email(subscriber_id): + subscriber = models.Subscriber.objects.get(pk=subscriber_id) if subscriber is None: return diff --git a/apps/notification/views/common.py b/apps/notification/views/common.py index 39fa55f3..0c97930d 100644 --- a/apps/notification/views/common.py +++ b/apps/notification/views/common.py @@ -70,7 +70,7 @@ class UnsubscribeView(generics.UpdateAPIView): def put(self, request, *args, **kw): obj = self.get_object() - obj.unsubscribe(request.query_params) + obj.unsubscribe() serializer = self.get_serializer(instance=obj) return Response(data=serializer.data) @@ -85,7 +85,7 @@ class UnsubscribeAuthUserView(generics.GenericAPIView): def patch(self, request, *args, **kw): user = request.user obj = models.Subscriber.objects.filter(user=user).first() - obj.unsubscribe(request.query_params) + obj.unsubscribe() serializer = self.get_serializer(instance=obj) return Response(data=serializer.data)