|
|
|
@ -39,14 +39,18 @@ from .signals import signal_ping, signal_redelivery
|
|
|
|
),
|
|
|
|
),
|
|
|
|
update=extend_schema(
|
|
|
|
update=extend_schema(
|
|
|
|
summary="Method updates a webhook by id",
|
|
|
|
summary="Method updates a webhook by id",
|
|
|
|
responses={"200": WebhookWriteSerializer},
|
|
|
|
request=WebhookWriteSerializer,
|
|
|
|
|
|
|
|
responses={"200": WebhookReadSerializer}, # check WebhookWriteSerializer.to_representation
|
|
|
|
),
|
|
|
|
),
|
|
|
|
partial_update=extend_schema(
|
|
|
|
partial_update=extend_schema(
|
|
|
|
summary="Methods does a partial update of chosen fields in a webhook",
|
|
|
|
summary="Methods does a partial update of chosen fields in a webhook",
|
|
|
|
responses={"200": WebhookWriteSerializer},
|
|
|
|
request=WebhookWriteSerializer,
|
|
|
|
|
|
|
|
responses={"200": WebhookReadSerializer}, # check WebhookWriteSerializer.to_representation
|
|
|
|
),
|
|
|
|
),
|
|
|
|
create=extend_schema(
|
|
|
|
create=extend_schema(
|
|
|
|
summary="Method creates a webhook", responses={"201": WebhookWriteSerializer}
|
|
|
|
request=WebhookWriteSerializer,
|
|
|
|
|
|
|
|
summary="Method creates a webhook",
|
|
|
|
|
|
|
|
responses={"201": WebhookReadSerializer} # check WebhookWriteSerializer.to_representation
|
|
|
|
),
|
|
|
|
),
|
|
|
|
destroy=extend_schema(
|
|
|
|
destroy=extend_schema(
|
|
|
|
summary="Method deletes a webhook",
|
|
|
|
summary="Method deletes a webhook",
|
|
|
|
@ -65,9 +69,11 @@ class WebhookViewSet(viewsets.ModelViewSet):
|
|
|
|
iam_organization_field = "organization"
|
|
|
|
iam_organization_field = "organization"
|
|
|
|
|
|
|
|
|
|
|
|
def get_serializer_class(self):
|
|
|
|
def get_serializer_class(self):
|
|
|
|
if self.request.path.endswith("redelivery") or self.request.path.endswith(
|
|
|
|
# Early exit for drf-spectacular compatibility
|
|
|
|
"ping"
|
|
|
|
if getattr(self, 'swagger_fake_view', False):
|
|
|
|
):
|
|
|
|
return WebhookReadSerializer
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if self.request.path.endswith("redelivery") or self.request.path.endswith("ping"):
|
|
|
|
return None
|
|
|
|
return None
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
if self.request.method in SAFE_METHODS:
|
|
|
|
if self.request.method in SAFE_METHODS:
|
|
|
|
@ -164,11 +170,15 @@ class WebhookViewSet(viewsets.ModelViewSet):
|
|
|
|
)
|
|
|
|
)
|
|
|
|
return Response(serializer.data)
|
|
|
|
return Response(serializer.data)
|
|
|
|
|
|
|
|
|
|
|
|
@extend_schema(summary="Method redeliver a specific webhook delivery")
|
|
|
|
@extend_schema(summary="Method redeliver a specific webhook delivery",
|
|
|
|
|
|
|
|
request=None,
|
|
|
|
|
|
|
|
responses={200: None}
|
|
|
|
|
|
|
|
)
|
|
|
|
@action(
|
|
|
|
@action(
|
|
|
|
detail=True,
|
|
|
|
detail=True,
|
|
|
|
methods=["POST"],
|
|
|
|
methods=["POST"],
|
|
|
|
url_path=r"deliveries/(?P<delivery_id>\d+)/redelivery",
|
|
|
|
url_path=r"deliveries/(?P<delivery_id>\d+)/redelivery",
|
|
|
|
|
|
|
|
serializer_class=None
|
|
|
|
)
|
|
|
|
)
|
|
|
|
def redelivery(self, request, pk, delivery_id):
|
|
|
|
def redelivery(self, request, pk, delivery_id):
|
|
|
|
delivery = WebhookDelivery.objects.get(webhook_id=pk, id=delivery_id)
|
|
|
|
delivery = WebhookDelivery.objects.get(webhook_id=pk, id=delivery_id)
|
|
|
|
@ -179,6 +189,7 @@ class WebhookViewSet(viewsets.ModelViewSet):
|
|
|
|
|
|
|
|
|
|
|
|
@extend_schema(
|
|
|
|
@extend_schema(
|
|
|
|
summary="Method send ping webhook",
|
|
|
|
summary="Method send ping webhook",
|
|
|
|
|
|
|
|
request=None,
|
|
|
|
responses={"200": WebhookDeliveryReadSerializer},
|
|
|
|
responses={"200": WebhookDeliveryReadSerializer},
|
|
|
|
)
|
|
|
|
)
|
|
|
|
@action(
|
|
|
|
@action(
|
|
|
|
|