adding
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
from rest_framework import status
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.views import APIView
|
||||
|
||||
from .serializers import TelemetryBatchSerializer
|
||||
from .services import TelemetryIngestService
|
||||
|
||||
|
||||
class TelemetryEventsView(APIView):
|
||||
"""اپ فلاتر دورهای (و موقعِ بستن) یک دسته رویداد اینجا میفرستد —
|
||||
صفحهبازدید، کلیک، خطا، شروع/پایانِ جلسه. لاگین لازم است چون این
|
||||
مانیتورینگ «بهازای کاربر» است، نه ترافیکِ ناشناس."""
|
||||
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
def post(self, request):
|
||||
serializer = TelemetryBatchSerializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
ip = request.META.get("HTTP_X_FORWARDED_FOR", "").split(",")[0].strip() or request.META.get(
|
||||
"REMOTE_ADDR"
|
||||
)
|
||||
TelemetryIngestService.ingest(request.user, ip, serializer.validated_data)
|
||||
return Response({"success": True}, status=status.HTTP_201_CREATED)
|
||||
Reference in New Issue
Block a user