enqueue webhook request

This commit is contained in:
Revant Nandgaonkar 2017-09-18 17:10:53 +05:30
parent 421b436803
commit fadb45e369
2 changed files with 5 additions and 36 deletions

View file

@ -51,10 +51,12 @@ class Webhook(Document):
r = requests.post(self.request_url, data=json.dumps(data), headers=headers, timeout=5)
frappe.logger().debug({"webhook_success":r.text})
def evaluate_webhook(doc, webhook):
def enqueue_webhook(doc, webhook):
webhook = frappe.get_doc("Webhook", webhook.get("name"))
try:
webhook.request(doc)
except Exception as e:
frappe.log_error(message=frappe.get_traceback(), title=e)
frappe.throw(_("Error in Webhook"))
frappe.throw(_("Error in Webhook"), exc=e)
def evaluate_webhook(doc, webhook):
frappe.enqueue('frappe.integrations.doctype.webhook.webhook.enqueue_webhook', doc=doc, webhook=webhook)

View file

@ -1,33 +0,0 @@
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# MIT License. See license.txt
from __future__ import unicode_literals
import frappe, requests, json
from frappe import _
# Doc Events Webhook
def doc_event_webhook(doc, method=None, *args, **kwargs):
headers = {}
data = {}
filters = {
"webhook_doctype": doc.get("doctype"),
"webhook_docevent": method
}
webhooks = frappe.get_all("Webhook", filters=filters)
webhook = frappe.get_doc("Webhook", webhooks[0].get("name")) if webhooks and len(webhooks) > 0 else None
if webhook:
if webhook.webhook_headers:
for h in webhook.webhook_headers:
if h.get("key") and h.get("value"):
headers[h.get("key")] = h.get("value")
if webhook.webhook_data:
for k, v in doc.as_dict().items():
for w in webhook.webhook_data:
if k == w.fieldname:
data[w.key] = v
try:
r = requests.post(webhook.request_url, data=json.dumps(data), headers=headers, timeout=5)
frappe.logger().debug({"webhook_success":r.text, "webhook": webhook.as_json()})
except Exception as e:
frappe.logger().debug({"webhook_error":r.text, "webhook": webhook.as_json()})
frappe.throw(_("Unable to make request"), exc=e)