fix: реактивация DISABLED подписок при покупке устройств и в REST API

Добавлен вызов reactivate_subscription перед update_remnawave_user в 4 пропущенных местах:
- handlers/subscription/devices.py (2 пути покупки устройств)
- webapi/routes/subscriptions.py (эндпоинты добавления трафика и устройств)
This commit is contained in:
Fringg
2026-03-05 11:29:23 +03:00
parent 900be65617
commit b9e17be855
2 changed files with 27 additions and 0 deletions
+10
View File
@@ -604,6 +604,11 @@ async def execute_change_devices(callback: types.CallbackQuery, db_user: User, d
await db.commit()
# Реактивируем подписку если она была DISABLED (например, после LIMITED в RemnaWave)
from app.database.crud.subscription import reactivate_subscription
await reactivate_subscription(db, subscription)
subscription_service = SubscriptionService()
await subscription_service.update_remnawave_user(db, subscription)
@@ -1272,6 +1277,11 @@ async def confirm_add_devices(callback: types.CallbackQuery, db_user: User, db:
subscription.updated_at = datetime.now(UTC)
await db.commit()
# Реактивируем подписку если она была DISABLED (например, после LIMITED в RemnaWave)
from app.database.crud.subscription import reactivate_subscription
await reactivate_subscription(db, subscription)
subscription_service = SubscriptionService()
await subscription_service.update_remnawave_user(db, subscription)
+17
View File
@@ -19,6 +19,7 @@ from app.database.crud.subscription import (
deactivate_subscription,
extend_subscription,
get_subscription_by_user_id,
reactivate_subscription,
remove_subscription_squad,
replace_subscription,
)
@@ -253,6 +254,14 @@ async def add_subscription_traffic_endpoint(
) -> SubscriptionResponse:
subscription = await _get_subscription(db, subscription_id)
subscription = await add_subscription_traffic(db, subscription, payload.gb)
# Реактивируем подписку если она была DISABLED (например, после LIMITED в RemnaWave)
await reactivate_subscription(db, subscription)
# Синхронизируем с RemnaWave
service = SubscriptionService()
await service.update_remnawave_user(db, subscription)
subscription = await _get_subscription(db, subscription.id)
return _serialize_subscription(subscription)
@@ -266,6 +275,14 @@ async def add_subscription_devices_endpoint(
) -> SubscriptionResponse:
subscription = await _get_subscription(db, subscription_id)
subscription = await add_subscription_devices(db, subscription, payload.devices)
# Реактивируем подписку если она была DISABLED (например, после LIMITED в RemnaWave)
await reactivate_subscription(db, subscription)
# Синхронизируем с RemnaWave
service = SubscriptionService()
await service.update_remnawave_user(db, subscription)
subscription = await _get_subscription(db, subscription.id)
return _serialize_subscription(subscription)