The new updates of partners and user

Made-with: Cursor
This commit is contained in:
Vivek P Prakash
2026-03-15 00:29:17 +05:30
parent 88b3aafb0b
commit c04395afc9
65 changed files with 5242 additions and 341 deletions

View File

@@ -0,0 +1,58 @@
"""
Central logging service for EventifyLogger.
"""
import json
from eventify_logger.models import EventifyLogger
def _get_client_ip(request):
"""Extract client IP from request."""
if not request:
return None
x_forwarded = request.META.get("HTTP_X_FORWARDED_FOR")
if x_forwarded:
return x_forwarded.split(",")[0].strip() or None
return request.META.get("REMOTE_ADDR")
def _get_user_agent(request):
"""Extract User-Agent from request."""
if not request:
return None
return request.META.get("HTTP_USER_AGENT", "")
def log(logger_type, logger_message, request=None, user=None, logger_data=None):
"""
Create an EventifyLogger record.
Args:
logger_type: 'info' | 'warning' | 'error' | 'critical'
logger_message: str
request: optional HttpRequest (used for IP, user-agent, user if not provided)
user: optional User (overrides request.user)
logger_data: optional str or dict (dict will be JSON-serialized)
"""
try:
resolved_user = user
if resolved_user is None and request and hasattr(request, "user"):
resolved_user = getattr(request.user, "is_authenticated", False) and request.user or None
ip_address = _get_client_ip(request) if request else None
user_agent = _get_user_agent(request) if request else None
if isinstance(logger_data, dict):
logger_data = json.dumps(logger_data)
EventifyLogger.objects.create(
logger_type=logger_type,
logger_message=str(logger_message)[:10000], # cap message length
logger_data=logger_data[:10000] if logger_data else None, # cap data length
logged_user=resolved_user,
logged_ip_address=ip_address,
logged_user_device=None, # defer UA parsing
logged_user_browser=user_agent[:250] if user_agent else None,
)
except Exception:
pass # Never let logging break the app