From 092de9e3c46f6987702d1fd9e61354e7f4693fdd Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 17 Jul 2024 17:15:35 +0200 Subject: [PATCH] Add webhook for pretix.event.order.deleted (Z#23159520) (#4310) --- doc/api/resources/webhooks.rst | 1 + src/pretix/api/webhooks.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/doc/api/resources/webhooks.rst b/doc/api/resources/webhooks.rst index 1d2b3e515..a9abe52c0 100644 --- a/doc/api/resources/webhooks.rst +++ b/doc/api/resources/webhooks.rst @@ -41,6 +41,7 @@ The following values for ``action_types`` are valid with pretix core: * ``pretix.event.order.modified`` * ``pretix.event.order.contact.changed`` * ``pretix.event.order.changed.*`` + * ``pretix.event.order.deleted`` (can only occur for test mode orders) * ``pretix.event.order.refund.created`` * ``pretix.event.order.refund.created.externally`` * ``pretix.event.order.refund.requested`` diff --git a/src/pretix/api/webhooks.py b/src/pretix/api/webhooks.py index c47b56e9a..7a625c28b 100644 --- a/src/pretix/api/webhooks.py +++ b/src/pretix/api/webhooks.py @@ -126,6 +126,17 @@ class ParametrizedOrderWebhookEvent(ParametrizedWebhookEvent): } +class DeletedOrderWebhookEvent(ParametrizedWebhookEvent): + def build_payload(self, logentry: LogEntry): + return { + 'notification_id': logentry.pk, + 'organizer': logentry.organizer.slug, + 'event': logentry.event.slug, + 'code': logentry.parsed_data.get("code"), + 'action': logentry.action_type, + } + + class ParametrizedEventWebhookEvent(ParametrizedWebhookEvent): def build_payload(self, logentry: LogEntry): @@ -297,6 +308,10 @@ def register_default_webhook_events(sender, **kwargs): 'pretix.event.order.denied', _('Order denied'), ), + DeletedOrderWebhookEvent( + 'pretix.event.order.deleted', + _('Order deleted'), + ), ParametrizedOrderPositionCheckinWebhookEvent( 'pretix.event.checkin', _('Ticket checked in'),