Added subscriptions associate

This commit is contained in:
dormantman 2020-01-21 12:04:55 +03:00
parent 27f47cfae6
commit 66780ef093
2 changed files with 16 additions and 10 deletions

View File

@ -89,11 +89,15 @@ class SignupSerializer(serializers.ModelSerializer):
user_id=obj.id,
country_code=request.country_code)
# Make subscriber
Subscriber.objects.make_subscriber(
email=obj.email, user=obj, ip_address=get_user_ip(request),
country_code=request.country_code, locale=request.locale
)
# Make subscriber or associate user
subscriber = Subscriber.objects.associate_user(user=obj)
if subscriber is None:
Subscriber.objects.make_subscriber(
email=obj.email, user=obj, ip_address=get_user_ip(request),
country_code=request.country_code, locale=request.locale
)
return obj

View File

@ -38,6 +38,9 @@ class SubscriberManager(models.Manager):
else:
obj = self.model.objects.filter(email=email).first()
if subscription_types is None:
subscription_types = []
# update or create
if obj:
if user:
@ -51,18 +54,17 @@ class SubscriberManager(models.Manager):
obj.country_code = country_code
obj.locale = locale
obj.update_code = generate_string_code()
obj.subscription_types.set(subscription_types)
obj.subscribe_set.update(unsubscribe_date=None)
obj.save()
else:
obj = self.model.objects.create(
user=user, email=email, ip_address=ip_address,
country_code=country_code, locale=locale
country_code=country_code, locale=locale,
subscription_types=subscription_types,
)
if subscription_types is not None:
obj.subscription_types.set(subscription_types)
obj.subscribe_set.update(unsubscribe_date=None)
return obj
def associate_user(self, user):