diff --git a/app/services/monitoring_service.py b/app/services/monitoring_service.py index 753688b1..00c32b67 100644 --- a/app/services/monitoring_service.py +++ b/app/services/monitoring_service.py @@ -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( diff --git a/app/services/remnawave_service.py b/app/services/remnawave_service.py index 2db162d6..de7f2475 100644 --- a/app/services/remnawave_service.py +++ b/app/services/remnawave_service.py @@ -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: