From c1655bdd0aec88cbad7e64d2ea31320dd020a79d Mon Sep 17 00:00:00 2001 From: ValueOn AG Date: Mon, 8 Jun 2026 21:01:32 +0200 Subject: [PATCH] refactor: move billingWebhookHandler to serviceBilling layer Business logic for Stripe webhooks belongs in serviceCenter/services/serviceBilling/, not in routes/. Updates 3 lazy imports in routeBilling.py accordingly. Co-authored-by: Cursor --- modules/routes/routeBilling.py | 6 +++--- .../services/serviceBilling}/billingWebhookHandler.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) rename modules/{routes => serviceCenter/services/serviceBilling}/billingWebhookHandler.py (99%) diff --git a/modules/routes/routeBilling.py b/modules/routes/routeBilling.py index 058038c0..d193f9bb 100644 --- a/modules/routes/routeBilling.py +++ b/modules/routes/routeBilling.py @@ -332,7 +332,7 @@ def _getStripeClient(): def _creditStripeSessionIfNeeded(billingInterface, session: Dict[str, Any], eventId: Optional[str] = None) -> CheckoutConfirmResponse: """Credit balance from Stripe Checkout session if not already credited.""" - from .billingWebhookHandler import creditStripeSessionIfNeeded + from modules.serviceCenter.services.serviceBilling.billingWebhookHandler import creditStripeSessionIfNeeded return creditStripeSessionIfNeeded(billingInterface, session, eventId, CheckoutConfirmResponse) @@ -1079,13 +1079,13 @@ async def stripeWebhook( def handleSubscriptionCheckoutCompleted(session, eventId: str) -> None: """Handle checkout.session.completed for mode=subscription.""" - from .billingWebhookHandler import handleSubscriptionCheckoutCompleted as _handler + from modules.serviceCenter.services.serviceBilling.billingWebhookHandler import handleSubscriptionCheckoutCompleted as _handler _handler(session, eventId, getRootInterface) def _handleSubscriptionWebhook(event) -> None: """Process Stripe subscription webhook events.""" - from .billingWebhookHandler import handleSubscriptionWebhook as _handler + from modules.serviceCenter.services.serviceBilling.billingWebhookHandler import handleSubscriptionWebhook as _handler _handler(event, getRootInterface) diff --git a/modules/routes/billingWebhookHandler.py b/modules/serviceCenter/services/serviceBilling/billingWebhookHandler.py similarity index 99% rename from modules/routes/billingWebhookHandler.py rename to modules/serviceCenter/services/serviceBilling/billingWebhookHandler.py index ecfe37b4..8e765cc7 100644 --- a/modules/routes/billingWebhookHandler.py +++ b/modules/serviceCenter/services/serviceBilling/billingWebhookHandler.py @@ -2,7 +2,7 @@ # All rights reserved. """ Stripe webhook and subscription business logic for billing. -Extracted from routeBilling.py for maintainability. +Handles checkout credit, subscription lifecycle transitions, and invoice events. """ import logging