diff --git a/README.md b/README.md index fc614b2..b91f6fd 100644 --- a/README.md +++ b/README.md @@ -241,6 +241,8 @@ def pobo_webhook(request): sync_products.delay() elif payload.event == WebhookEvent.CATEGORIES_UPDATE: sync_categories.delay() + elif payload.event == WebhookEvent.BLOGS_UPDATE: + sync_blogs.delay() return JsonResponse({"status": "ok"}) @@ -260,7 +262,7 @@ payload = handler.handle( ### Webhook Payload ```python -payload.event # str: "products.update" or "categories.update" +payload.event # str: "products.update", "categories.update", or "blogs.update" payload.timestamp # datetime payload.eshop_id # int ``` diff --git a/src/pobo/enums.py b/src/pobo/enums.py index f695b94..46ee3b7 100644 --- a/src/pobo/enums.py +++ b/src/pobo/enums.py @@ -20,3 +20,4 @@ class WebhookEvent(str, Enum): PRODUCTS_UPDATE = "products.update" CATEGORIES_UPDATE = "categories.update" + BLOGS_UPDATE = "blogs.update" diff --git a/tests/test_webhook.py b/tests/test_webhook.py index 0a4e56d..452229c 100644 --- a/tests/test_webhook.py +++ b/tests/test_webhook.py @@ -34,6 +34,15 @@ def test_handle_valid_payload(self, handler, secret): assert result.event == "products.update" assert result.eshop_id == 123 + def test_handle_blogs_update_payload(self, handler, secret): + payload = json.dumps({"event": "blogs.update", "timestamp": 1704067200, "eshop_id": 456}) + signature = self.sign(payload, secret) + + result = handler.handle(payload, signature) + + assert result.event == "blogs.update" + assert result.eshop_id == 456 + def test_handle_missing_signature(self, handler): payload = json.dumps({"event": "products.update"})