tahamajs's picture
download
raw
1.49 kB
from django.shortcuts import get_object_or_404
from integrations.models import WebhookSubscription
from integrations.serializers import WebhookSubscriptionSerializer
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
@api_view(["GET", "POST"])
@permission_classes([IsAuthenticated])
def webhook_list(request):
if request.method == "GET":
subs = WebhookSubscription.objects.filter(user=request.user)
return Response(WebhookSubscriptionSerializer(subs, many=True).data)
elif request.method == "POST":
serializer = WebhookSubscriptionSerializer(data=request.data)
if serializer.is_valid():
sub = serializer.save(user=request.user)
return Response(serializer.data, status=201)
return Response(serializer.errors, status=400)
@api_view(["DELETE"])
@permission_classes([IsAuthenticated])
def webhook_delete(request, sub_id):
sub = get_object_or_404(WebhookSubscription, id=sub_id, user=request.user)
sub.delete()
return Response(status=204)
@api_view(["POST"])
@permission_classes([IsAuthenticated])
def webhook_test(request, sub_id):
"""Send a test event to the webhook URL."""
sub = get_object_or_404(WebhookSubscription, id=sub_id, user=request.user)
success = dispatch_webhook(sub, "test", {"message": "Test event from NeuralOps"})
return Response({"success": success})

Xet Storage Details

Size:
1.49 kB
·
Xet hash:
c03400367af5dbe7981083182aa15c67439221149fd4454463f24acd3a52c451

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.