You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

58 lines
1.4 KiB

import logging
import requests
from mixpanel import Mixpanel
from django.conf import settings
from project.celery import app
logger = logging.getLogger(__name__)
@app.task
def transaction_to_mixpanel(user_id, amount, time, product_type):
mix = Mixpanel(settings.MIX_TOKEN)
mix.people_track_charge(
user_id,
amount,
{
'$time': time,
'product_type': product_type,
}
)
@app.task
def product_payment_to_mixpanel(user_id, event_name, time, properties):
mix = Mixpanel(settings.MIX_TOKEN)
props = {
'$time': time,
}
props.update(properties)
mix.track(
user_id,
event_name,
properties=props,
)
@app.task
def transaction_to_roistat(user_id, payment_id, event_name, amount, time, status, product_type, roistat_visit):
body = [{
'id': str(payment_id),
'name': event_name,
'date_create': time,
'status': str(status),
'roistat': str(roistat_visit) if roistat_visit else None,
'price': str(amount),
'client_id': str(user_id),
'fields': {
'product_type': product_type,
}
}]
project = settings.ROISTAT_PROJECT
key = settings.ROISTAT_KEY
url = settings.ROISTAT_API_URL + f'/project/add-orders?key={key}&project={project}'
resp = requests.post(url, json=body)
logger.info('TRANSACTION_TO_ROISTAT: ' + str(resp))