Now webhook test and webhooklog resend endpoints return the generated webhooklog object
parent
00d94cdeca
commit
97cec70d55
|
@ -42,9 +42,10 @@ class WebhookViewSet(ModelCrudViewSet):
|
||||||
webhook = self.get_object()
|
webhook = self.get_object()
|
||||||
self.check_permissions(request, 'test', webhook)
|
self.check_permissions(request, 'test', webhook)
|
||||||
|
|
||||||
tasks.test_webhook(webhook.id, webhook.url, webhook.key)
|
webhooklog = tasks.test_webhook(webhook.id, webhook.url, webhook.key)
|
||||||
|
log = serializers.WebhookLogSerializer(webhooklog)
|
||||||
|
|
||||||
return Response()
|
return Response(log.data)
|
||||||
|
|
||||||
class WebhookLogViewSet(ModelListViewSet):
|
class WebhookLogViewSet(ModelListViewSet):
|
||||||
model = models.WebhookLog
|
model = models.WebhookLog
|
||||||
|
@ -60,6 +61,7 @@ class WebhookLogViewSet(ModelListViewSet):
|
||||||
|
|
||||||
webhook = webhooklog.webhook
|
webhook = webhooklog.webhook
|
||||||
|
|
||||||
tasks.resend_webhook(webhook.id, webhook.url, webhook.key, webhooklog.request_data)
|
webhooklog = tasks.resend_webhook(webhook.id, webhook.url, webhook.key, webhooklog.request_data)
|
||||||
|
log = serializers.WebhookLogSerializer(webhooklog)
|
||||||
|
|
||||||
return Response()
|
return Response(log.data)
|
||||||
|
|
|
@ -44,6 +44,8 @@ class WebhookSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
class WebhookLogSerializer(serializers.ModelSerializer):
|
class WebhookLogSerializer(serializers.ModelSerializer):
|
||||||
request_data = JsonField()
|
request_data = JsonField()
|
||||||
|
request_headers = JsonField()
|
||||||
|
response_headers = JsonField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = WebhookLog
|
model = WebhookLog
|
||||||
|
|
|
@ -70,24 +70,25 @@ def _send_request(webhook_id, url, key, data):
|
||||||
session = requests.Session()
|
session = requests.Session()
|
||||||
try:
|
try:
|
||||||
response = session.send(prepared_request)
|
response = session.send(prepared_request)
|
||||||
WebhookLog.objects.create(webhook_id=webhook_id, url=url,
|
webhook_log = WebhookLog.objects.create(webhook_id=webhook_id, url=url,
|
||||||
status=response.status_code,
|
status=response.status_code,
|
||||||
request_data=data,
|
request_data=data,
|
||||||
request_headers=dict(prepared_request.headers),
|
request_headers=dict(prepared_request.headers),
|
||||||
response_data=response.content,
|
response_data=response.content,
|
||||||
response_headers=dict(response.headers),
|
response_headers=dict(response.headers),
|
||||||
duration=response.elapsed.total_seconds())
|
duration=response.elapsed.total_seconds())
|
||||||
except RequestException as e:
|
except RequestException as e:
|
||||||
WebhookLog.objects.create(webhook_id=webhook_id, url=url, status=0,
|
webhook_log = WebhookLog.objects.create(webhook_id=webhook_id, url=url, status=0,
|
||||||
request_data=data,
|
request_data=data,
|
||||||
request_headers=dict(prepared_request.headers),
|
request_headers=dict(prepared_request.headers),
|
||||||
response_data="error-in-request: {}".format(str(e)),
|
response_data="error-in-request: {}".format(str(e)),
|
||||||
response_headers={},
|
response_headers={},
|
||||||
duration=0)
|
duration=0)
|
||||||
session.close()
|
session.close()
|
||||||
|
|
||||||
ids = [webhook_log.id for webhook_log in WebhookLog.objects.filter(webhook_id=webhook_id).order_by("-id")[10:]]
|
ids = [webhook_log.id for webhook_log in WebhookLog.objects.filter(webhook_id=webhook_id).order_by("-id")[10:]]
|
||||||
WebhookLog.objects.filter(id__in=ids).delete()
|
WebhookLog.objects.filter(id__in=ids).delete()
|
||||||
|
return webhook_log
|
||||||
|
|
||||||
|
|
||||||
@app.task
|
@app.task
|
||||||
|
@ -98,7 +99,7 @@ def change_webhook(webhook_id, url, key, obj, change):
|
||||||
data['type'] = _get_type(obj)
|
data['type'] = _get_type(obj)
|
||||||
data['change'] = _serialize(change)
|
data['change'] = _serialize(change)
|
||||||
|
|
||||||
_send_request(webhook_id, url, key, data)
|
return _send_request(webhook_id, url, key, data)
|
||||||
|
|
||||||
|
|
||||||
@app.task
|
@app.task
|
||||||
|
@ -108,7 +109,7 @@ def create_webhook(webhook_id, url, key, obj):
|
||||||
data['action'] = "create"
|
data['action'] = "create"
|
||||||
data['type'] = _get_type(obj)
|
data['type'] = _get_type(obj)
|
||||||
|
|
||||||
_send_request(webhook_id, url, key, data)
|
return _send_request(webhook_id, url, key, data)
|
||||||
|
|
||||||
|
|
||||||
@app.task
|
@app.task
|
||||||
|
@ -118,12 +119,12 @@ def delete_webhook(webhook_id, url, key, obj):
|
||||||
data['action'] = "delete"
|
data['action'] = "delete"
|
||||||
data['type'] = _get_type(obj)
|
data['type'] = _get_type(obj)
|
||||||
|
|
||||||
_send_request(webhook_id, url, key, data)
|
return _send_request(webhook_id, url, key, data)
|
||||||
|
|
||||||
|
|
||||||
@app.task
|
@app.task
|
||||||
def resend_webhook(webhook_id, url, key, data):
|
def resend_webhook(webhook_id, url, key, data):
|
||||||
_send_request(webhook_id, url, key, data)
|
return _send_request(webhook_id, url, key, data)
|
||||||
|
|
||||||
|
|
||||||
@app.task
|
@app.task
|
||||||
|
@ -133,5 +134,5 @@ def test_webhook(webhook_id, url, key):
|
||||||
data['action'] = "test"
|
data['action'] = "test"
|
||||||
data['type'] = "test"
|
data['type'] = "test"
|
||||||
|
|
||||||
_send_request(webhook_id, url, key, data)
|
return _send_request(webhook_id, url, key, data)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue