refactor: standardize modular architecture patterns
- Rename module definition variables to follow naming convention: - catalog/definition.py: module → catalog_module - checkout/definition.py: module → checkout_module - cart/definition.py: module → cart_module - Add router attachment functions for lazy loading: - get_catalog_module_with_routers() - get_checkout_module_with_routers() - get_cart_module_with_routers() - Move billing exceptions to exceptions.py: - Add backwards-compatible aliases (BillingServiceError, etc.) - Update billing_service.py to import from exceptions.py - Standardize VendorEmailSettingsService DI pattern: - Change from db in __init__ to db as method parameter - Create singleton vendor_email_settings_service instance - Update routes and tests to use new pattern Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -20,7 +20,7 @@ from sqlalchemy.orm import Session
|
||||
|
||||
from app.api.deps import get_current_vendor_api
|
||||
from app.core.database import get_db
|
||||
from app.modules.cms.services.vendor_email_settings_service import VendorEmailSettingsService
|
||||
from app.modules.cms.services.vendor_email_settings_service import vendor_email_settings_service
|
||||
from app.modules.billing.services.subscription_service import subscription_service
|
||||
from models.schema.auth import UserContext
|
||||
|
||||
@@ -137,9 +137,8 @@ def get_email_settings(
|
||||
Returns settings with sensitive fields masked.
|
||||
"""
|
||||
vendor_id = current_user.token_vendor_id
|
||||
service = VendorEmailSettingsService(db)
|
||||
|
||||
settings = service.get_settings(vendor_id)
|
||||
settings = vendor_email_settings_service.get_settings(db, vendor_id)
|
||||
if not settings:
|
||||
return EmailSettingsResponse(
|
||||
configured=False,
|
||||
@@ -165,8 +164,7 @@ def get_email_status(
|
||||
Used by frontend to show warning banner if not configured.
|
||||
"""
|
||||
vendor_id = current_user.token_vendor_id
|
||||
service = VendorEmailSettingsService(db)
|
||||
status = service.get_status(vendor_id)
|
||||
status = vendor_email_settings_service.get_status(db, vendor_id)
|
||||
return EmailStatusResponse(**status)
|
||||
|
||||
|
||||
@@ -181,13 +179,12 @@ def get_available_providers(
|
||||
Returns list of providers with availability status.
|
||||
"""
|
||||
vendor_id = current_user.token_vendor_id
|
||||
service = VendorEmailSettingsService(db)
|
||||
|
||||
# Get vendor's current tier
|
||||
tier = subscription_service.get_current_tier(db, vendor_id)
|
||||
|
||||
return ProvidersResponse(
|
||||
providers=service.get_available_providers(tier),
|
||||
providers=vendor_email_settings_service.get_available_providers(tier),
|
||||
current_tier=tier.value if tier else None,
|
||||
)
|
||||
|
||||
@@ -206,13 +203,13 @@ def update_email_settings(
|
||||
Raises ValidationException if data is invalid.
|
||||
"""
|
||||
vendor_id = current_user.token_vendor_id
|
||||
service = VendorEmailSettingsService(db)
|
||||
|
||||
# Get vendor's current tier for validation
|
||||
tier = subscription_service.get_current_tier(db, vendor_id)
|
||||
|
||||
# Service raises appropriate exceptions (API-003 compliance)
|
||||
settings = service.create_or_update(
|
||||
settings = vendor_email_settings_service.create_or_update(
|
||||
db=db,
|
||||
vendor_id=vendor_id,
|
||||
data=data.model_dump(exclude_unset=True),
|
||||
current_tier=tier,
|
||||
@@ -240,10 +237,9 @@ def verify_email_settings(
|
||||
Raises ValidationException if verification fails.
|
||||
"""
|
||||
vendor_id = current_user.token_vendor_id
|
||||
service = VendorEmailSettingsService(db)
|
||||
|
||||
# Service raises appropriate exceptions (API-003 compliance)
|
||||
result = service.verify_settings(vendor_id, data.test_email)
|
||||
result = vendor_email_settings_service.verify_settings(db, vendor_id, data.test_email)
|
||||
db.commit()
|
||||
|
||||
return EmailVerifyResponse(
|
||||
@@ -264,10 +260,9 @@ def delete_email_settings(
|
||||
Raises ResourceNotFoundException if settings not found.
|
||||
"""
|
||||
vendor_id = current_user.token_vendor_id
|
||||
service = VendorEmailSettingsService(db)
|
||||
|
||||
# Service raises ResourceNotFoundException if not found (API-003 compliance)
|
||||
service.delete(vendor_id)
|
||||
vendor_email_settings_service.delete(db, vendor_id)
|
||||
db.commit()
|
||||
|
||||
return EmailDeleteResponse(
|
||||
|
||||
Reference in New Issue
Block a user