Files

39 lines
1.4 KiB
Python
Raw Permalink Normal View History

2026-06-27 19:08:48 +08:00
from pydantic import ValidationError
from rest_framework import permissions, status
from rest_framework.response import Response
from rest_framework.views import APIView
from apps.webhook.service import (
WebhookRedisError,
handle_kibana_webhook,
handle_splunk_webhook,
)
class SplunkWebhookView(APIView):
authentication_classes = []
permission_classes = [permissions.AllowAny]
def post(self, request):
try:
result = handle_splunk_webhook(request.data)
except (ValidationError, ValueError) as exc:
return Response({"detail": str(exc)}, status=status.HTTP_400_BAD_REQUEST)
except WebhookRedisError as exc:
return Response({"detail": str(exc)}, status=status.HTTP_503_SERVICE_UNAVAILABLE)
return Response(result.model_dump(), status=status.HTTP_200_OK)
class KibanaWebhookView(APIView):
authentication_classes = []
permission_classes = [permissions.AllowAny]
def post(self, request):
try:
result = handle_kibana_webhook(request.data)
except (ValidationError, ValueError) as exc:
return Response({"detail": str(exc)}, status=status.HTTP_400_BAD_REQUEST)
except WebhookRedisError as exc:
return Response({"detail": str(exc)}, status=status.HTTP_503_SERVICE_UNAVAILABLE)
return Response(result.model_dump(), status=status.HTTP_200_OK)