diff --git a/apps/notification/models.py b/apps/notification/models.py index ededdb00..2c3463a9 100644 --- a/apps/notification/models.py +++ b/apps/notification/models.py @@ -116,14 +116,13 @@ class Subscriber(ProjectBaseMixin): self.update_code = generate_string_code() return super(Subscriber, self).save(*args, **kwargs) - def unsubscribe(self): + def unsubscribe(self, query: dict): """Unsubscribe user.""" - subscribes = self.subscribe_objects - self.subscription_types = [] + subscription_types = query.get('subscription_types') - subscribes.unsubscribe_date = now() - subscribes.save() + subscribes = self.subscription_types.objects.filter(pk__in=[subscription_types]) + self.subscription_types = subscribes self.save() diff --git a/apps/notification/views/common.py b/apps/notification/views/common.py index 460c9444..a801bbdd 100644 --- a/apps/notification/views/common.py +++ b/apps/notification/views/common.py @@ -68,7 +68,7 @@ class UnsubscribeView(generics.GenericAPIView): def patch(self, request, *args, **kw): obj = self.get_object() - obj.unsubscribe() + obj.unsubscribe(request.query_params) serializer = self.get_serializer(instance=obj) return Response(data=serializer.data) @@ -83,7 +83,7 @@ class UnsubscribeAuthUserView(generics.GenericAPIView): def patch(self, request, *args, **kw): user = request.user obj = get_object_or_404(models.Subscriber, user=user) - obj.unsubscribe() + obj.unsubscribe(request.query_params) serializer = self.get_serializer(instance=obj) return Response(data=serializer.data)