Merge pull request #1716 from Fr1ngg/bedolaga/fix-remnawave-sync-error

Ensure RemnaWave service exposes create_user_no_commit
This commit is contained in:
Egor
2025-11-05 18:13:45 +03:00
committed by GitHub
2 changed files with 18 additions and 9 deletions

View File

@@ -283,7 +283,14 @@ class MonitoringService:
is_active = False
logger.info(f"📝 Статус подписки {subscription.id} обновлен на 'expired'")
async with self.api as api:
if not self.subscription_service.is_configured:
logger.warning(
"RemnaWave API не настроен. Пропускаем обновление пользователя %s",
subscription.user_id,
)
return None
async with self.subscription_service.get_api_client() as api:
hwid_limit = resolve_hwid_device_limit_for_payload(subscription)
update_kwargs = dict(
@@ -1488,7 +1495,11 @@ class MonitoringService:
if now.minute != 0:
return
async with self.subscription_service.api as api:
if not self.subscription_service.is_configured:
logger.warning("RemnaWave API не настроен. Пропускаем синхронизацию")
return
async with self.subscription_service.get_api_client() as api:
system_stats = await api.get_system_stats()
await self._log_monitoring_event(

View File

@@ -17,7 +17,7 @@ from sqlalchemy.exc import IntegrityError
from sqlalchemy.orm import selectinload
from sqlalchemy.ext.asyncio import AsyncSession
from app.database.crud.user import (
create_user,
create_user_no_commit,
get_users_list,
get_user_by_telegram_id,
update_user,
@@ -302,7 +302,7 @@ class RemnaWaveService:
first_name_from_desc, last_name_from_desc, username_from_desc = self._extract_user_data_from_description(description)
# Используем извлеченное имя или дефолтное значение
fallback_first_name = f"Panel User {telegram_id}"
fallback_first_name = f"User {telegram_id}"
full_first_name = fallback_first_name
full_last_name = None
@@ -321,13 +321,11 @@ class RemnaWaveService:
telegram_id=telegram_id,
username=username,
first_name=full_first_name,
last_name=full_last_name,
language="ru",
)
if full_last_name:
create_kwargs["last_name"] = full_last_name
db_user = await create_user(**create_kwargs)
db_user = await create_user_no_commit(**create_kwargs)
return db_user, True
except IntegrityError as create_error:
logger.info(
@@ -338,7 +336,7 @@ class RemnaWaveService:
try:
await db.rollback()
except Exception:
# create_user уже выполняет rollback при необходимости
# create_user_no_commit уже выполняет rollback при необходимости
pass
try: