Files
funnywolf b6b4cbf017 0.4.0 I always have a choice
You shape nothing until you hold everything.
2026-06-27 19:08:48 +08:00

39 lines
1.4 KiB
Python

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)