diff --git a/helpdesk/webhooks.py b/helpdesk/webhooks.py index cee26ad4..0eb33133 100644 --- a/helpdesk/webhooks.py +++ b/helpdesk/webhooks.py @@ -8,32 +8,36 @@ from .signals import update_ticket_done logger = logging.getLogger(__name__) -# listener is loaded via app.py HelpdeskConfig.ready() -@receiver(update_ticket_done) -def notify_followup_webhooks(sender, followup, **kwargs): +def notify_followup_webhooks(followup): urls = settings.HELPDESK_GET_FOLLOWUP_WEBHOOK_URLS() if not urls: return + # Serialize the ticket associated with the followup + from .serializers import TicketSerializer + ticket = followup.ticket + ticket.set_custom_field_values() + serialized_ticket = TicketSerializer(ticket).data + + # Prepare the data to send + data = { + 'ticket': serialized_ticket, + 'queue_slug': ticket.queue.slug, + 'followup_id': followup.id + } + + for url in urls: + try: + requests.post(url, json=data, timeout=settings.HELPDESK_WEBHOOK_TIMEOUT) + except requests.exceptions.Timeout: + logger.error('Timeout while sending followup webhook to %s', url) + + +# listener is loaded via app.py HelpdeskConfig.ready() +@receiver(update_ticket_done) +def notify_followup_webhooks_receiver(sender, followup, **kwargs): if sender == "update_ticket": - # Serialize the ticket associated with the followup - from .serializers import TicketSerializer - ticket = followup.ticket - ticket.set_custom_field_values() - serialized_ticket = TicketSerializer(ticket).data - - # Prepare the data to send - data = { - 'ticket': serialized_ticket, - 'queue_slug': ticket.queue.slug, - 'followup_id': followup.id - } - - for url in urls: - try: - requests.post(url, json=data, timeout=settings.HELPDESK_WEBHOOK_TIMEOUT) - except requests.exceptions.Timeout: - logger.error('Timeout while sending followup webhook to %s', url) + notify_followup_webhooks(followup) def send_new_ticket_webhook(ticket):