71 lines
2.2 KiB
Python
71 lines
2.2 KiB
Python
import os
|
|
import uuid
|
|
|
|
# third party imports
|
|
from celery import shared_task
|
|
from posthog import Posthog
|
|
|
|
# module imports
|
|
from plane.license.utils.instance_value import get_configuration_value
|
|
from plane.utils.exception_logger import log_exception
|
|
|
|
|
|
def posthogConfiguration():
|
|
POSTHOG_API_KEY, POSTHOG_HOST = get_configuration_value(
|
|
[
|
|
{
|
|
"key": "POSTHOG_API_KEY",
|
|
"default": os.environ.get("POSTHOG_API_KEY", None),
|
|
},
|
|
{"key": "POSTHOG_HOST", "default": os.environ.get("POSTHOG_HOST", None)},
|
|
]
|
|
)
|
|
if POSTHOG_API_KEY and POSTHOG_HOST:
|
|
return POSTHOG_API_KEY, POSTHOG_HOST
|
|
else:
|
|
return None, None
|
|
|
|
|
|
@shared_task
|
|
def auth_events(user, email, user_agent, ip, event_name, medium, first_time):
|
|
try:
|
|
POSTHOG_API_KEY, POSTHOG_HOST = posthogConfiguration()
|
|
|
|
if POSTHOG_API_KEY and POSTHOG_HOST:
|
|
posthog = Posthog(POSTHOG_API_KEY, host=POSTHOG_HOST)
|
|
posthog.capture(
|
|
email,
|
|
event=event_name,
|
|
properties={
|
|
"event_id": uuid.uuid4().hex,
|
|
"user": {"email": email, "id": str(user)},
|
|
"device_ctx": {"ip": ip, "user_agent": user_agent},
|
|
"medium": medium,
|
|
"first_time": first_time,
|
|
},
|
|
)
|
|
except Exception as e:
|
|
log_exception(e)
|
|
return
|
|
|
|
|
|
@shared_task
|
|
def workspace_invite_event(user, email, user_agent, ip, event_name, accepted_from):
|
|
try:
|
|
POSTHOG_API_KEY, POSTHOG_HOST = posthogConfiguration()
|
|
|
|
if POSTHOG_API_KEY and POSTHOG_HOST:
|
|
posthog = Posthog(POSTHOG_API_KEY, host=POSTHOG_HOST)
|
|
posthog.capture(
|
|
email,
|
|
event=event_name,
|
|
properties={
|
|
"event_id": uuid.uuid4().hex,
|
|
"user": {"email": email, "id": str(user)},
|
|
"device_ctx": {"ip": ip, "user_agent": user_agent},
|
|
"accepted_from": accepted_from,
|
|
},
|
|
)
|
|
except Exception as e:
|
|
log_exception(e)
|
|
return
|