gault-millau/apps/notification/transfer_data.py
2019-11-15 10:21:28 +03:00

45 lines
1.4 KiB
Python

from pprint import pprint
from account.models import User
from transfer.models import EmailAddresses, NewsletterSubscriber
from transfer.serializers.notification import SubscriberSerializer, NewsletterSubscriberSerializer
def transfer_subscriber():
queryset = EmailAddresses.objects.filter(state='usable')
serialized_data = SubscriberSerializer(data=list(queryset.values()), many=True)
if serialized_data.is_valid():
serialized_data.save()
else:
pprint(f'News serializer errors: {serialized_data.errors}')
def transfer_newsletter_subscriber():
users = User.objects.filter(old_id__isnull=False).values_list('old_id', flat=True)
queryset = NewsletterSubscriber.objects.filter(
email_address__account_id__in=list(users)
).values(
'id',
'email_address__email',
'email_address__account_id',
'email_address__ip',
'email_address__country_code',
'email_address__locale',
'state',
'created_at',
)
serialized_data = NewsletterSubscriberSerializer(data=list(queryset.values()), many=True)
if serialized_data.is_valid():
serialized_data.save()
else:
pprint(f'NewsletterSubscriber serializer errors: {serialized_data.errors}')
data_types = {
'subscriber': [transfer_subscriber],
'newsletter_subscriber': [transfer_newsletter_subscriber],
}