LIL-551. Upload clients to roistat

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent 13eafdc518
commit 382d9a76e8
  1. 0
      apps/user/management/__init__.py
  2. 0
      apps/user/management/commands/__init__.py
  3. 32
      apps/user/management/commands/users_to_roistat.py
  4. 23
      apps/user/tasks.py
  5. 5
      project/settings.py

@ -0,0 +1,32 @@
import requests
from django.conf import settings
from django.contrib.auth import get_user_model
from django.core.management.base import BaseCommand, CommandError
# User = get_user_model()
from apps.user.models import User
class Command(BaseCommand):
help = 'Upload users to Roistat'
def handle(self, *args, **options):
users_queryset = User.objects.all()
users = [
{
'id': str(user.id),
'name': user.get_full_name(),
'phone': str(user.phone),
'email': user.email,
'birth_date': user.birthday.strftime('%d%m%Y') if user.birthday else None,
}
for user in users_queryset
]
project = settings.ROISTAT_PROJECT
key = settings.ROISTAT_KEY
url = settings.ROISTAT_API_URL + f'/project/clients/import?key={key}&project={project}'
resp = requests.post(url, json=users)
self.stdout.write(str(resp))
self.stdout.write(str(resp.json()))

@ -1,6 +1,9 @@
import requests
from mixpanel import Mixpanel
from django.conf import settings
from django.contrib.auth import get_user_model
from project.celery import app
@ -20,3 +23,23 @@ def user_to_mixpanel(user_id, email, phone, first_name, last_name, date_joined,
'subscriptions': subscriptions,
}
)
@app.task
def users_to_roistat():
User = get_user_model()
users_queryset = User.objects.all()
users = [
{
'id': str(user.id),
'name': user.get_full_name(),
'phone': str(user.phone),
'email': user.email,
'birth_date': user.birthday.strftime('%d%m%Y') if user.birthday else None,
}
for user in users_queryset
]
project = settings.ROISTAT_PROJECT
key = settings.ROISTAT_KEY
url = settings.ROISTAT_API_URL + f'/project/clients/import?key={key}&project={project}'
resp = requests.post(url, json=users)

@ -222,6 +222,11 @@ CELERY_BEAT_SCHEDULE = {
'schedule': timedelta(minutes=5) if DEBUG else crontab(minute=0, hour=0),
'args': (),
},
'update_users_in_roistat': {
'task': 'apps.user.tasks.users_to_roistat',
'schedule': timedelta(hours=1),
'args': (),
},
}
try:

Loading…
Cancel
Save