refactor: move KASSA_AI_SUB_METHODS to service layer, add early enabled checks

- Move KASSA_AI_SUB_METHODS from handler to kassa_ai_service.py (fixes service→handler import violation)
- Remove KASSA_AI_PAYMENT_METHODS set (was defined but unused)
- Import KASSA_AI_SUB_METHODS in payment_service.py from service layer
- Add is_kassa_ai_sbp/card_enabled() checks at start of entry handler functions
This commit is contained in:
root
2026-03-07 15:21:08 +00:00
parent 04419fdff7
commit cda2392411
3 changed files with 16 additions and 6 deletions
+9 -5
View File
@@ -18,11 +18,7 @@ from app.utils.decorators import error_handler
logger = structlog.get_logger(__name__)
KASSA_AI_SUB_METHODS = {
'kassa_ai_sbp': {'payment_system_id': 44},
'kassa_ai_card': {'payment_system_id': 36},
}
KASSA_AI_PAYMENT_METHODS = {'kassa_ai', 'kassa_ai_sbp', 'kassa_ai_card'}
from app.services.kassa_ai_service import KASSA_AI_SUB_METHODS
async def _create_kassa_ai_payment_and_respond(
@@ -398,6 +394,10 @@ async def start_kassa_ai_sbp_topup(
"""Start KassaAI SBP top-up process."""
texts = get_texts(db_user.language)
if not settings.is_kassa_ai_sbp_enabled():
await callback.answer(texts.t('KASSA_AI_NOT_AVAILABLE', 'KassaAI СБП временно недоступен'), show_alert=True)
return
if getattr(db_user, 'restriction_topup', False):
reason = getattr(db_user, 'restriction_reason', None) or 'Действие ограничено администратором'
support_url = settings.get_support_contact_url()
@@ -502,6 +502,10 @@ async def start_kassa_ai_card_topup(
"""Start KassaAI Card top-up process."""
texts = get_texts(db_user.language)
if not settings.is_kassa_ai_card_enabled():
await callback.answer(texts.t('KASSA_AI_NOT_AVAILABLE', 'KassaAI Карта временно недоступна'), show_alert=True)
return
if getattr(db_user, 'restriction_topup', False):
reason = getattr(db_user, 'restriction_reason', None) or 'Действие ограничено администратором'
support_url = settings.get_support_contact_url()
+6
View File
@@ -14,6 +14,12 @@ from app.config import settings
logger = structlog.get_logger(__name__)
# Sub-method to payment_system_id mapping
KASSA_AI_SUB_METHODS = {
"kassa_ai_sbp": {"payment_system_id": 44},
"kassa_ai_card": {"payment_system_id": 36},
}
# Кэш для публичного IP
_cached_public_ip: str | None = None
_ip_fetch_lock = asyncio.Lock()
+1 -1
View File
@@ -671,7 +671,7 @@ class PaymentService(
logger.warning('KassaAI is not enabled, cannot create guest payment')
return None
from app.handlers.balance.kassa_ai import KASSA_AI_SUB_METHODS
from app.services.kassa_ai_service import KASSA_AI_SUB_METHODS
sub = KASSA_AI_SUB_METHODS.get(payment_method)
ps_id = sub['payment_system_id'] if sub else None