1ab1ff90bf
- Add revoke handler for classic and multi-tariff modes with 2-step confirmation dialog and TOCTOU-safe cooldown enforcement - Add cabinet API endpoint POST /subscription/revoke with 429 + Retry-After for cooldown, IDOR protection via resolve_subscription - Add last_revoke_at column to subscriptions (Alembic migration 0071) - Add SUBSCRIPTION_REVOKE_ENABLED and COOLDOWN_SECONDS config settings - Add revoke button to classic subscription settings keyboard and multi-tariff detail keyboard (gated by feature toggle) - Add locale keys for revoke UI in all 5 languages (ru, en, ua, zh, fa)
33 lines
1006 B
Python
33 lines
1006 B
Python
"""Subscription sub-modules for cabinet API.
|
|
|
|
Each module contains a subset of endpoints from the original monolithic subscription.py.
|
|
The main subscription.py includes all sub-routers for backward compatibility.
|
|
"""
|
|
|
|
from .autopay import router as autopay_router
|
|
from .daily import router as daily_router
|
|
from .devices import router as devices_router
|
|
from .multi_tariff import router as multi_tariff_router
|
|
from .purchase import router as purchase_router
|
|
from .renewal import router as renewal_router
|
|
from .revoke import router as revoke_router
|
|
from .servers import router as servers_router
|
|
from .status import router as status_router
|
|
from .tariff_switch import router as tariff_switch_router
|
|
from .traffic import router as traffic_router
|
|
|
|
|
|
__all__ = [
|
|
'autopay_router',
|
|
'daily_router',
|
|
'devices_router',
|
|
'multi_tariff_router',
|
|
'purchase_router',
|
|
'renewal_router',
|
|
'revoke_router',
|
|
'servers_router',
|
|
'status_router',
|
|
'tariff_switch_router',
|
|
'traffic_router',
|
|
]
|