Implement user validation and creation in handle_deep_link function. Add logging for user creation and error handling for invalid Telegram IDs. Update unit tests to include user creation verification.

This commit is contained in:
2025-09-09 01:01:20 +03:00
parent 23c30a78e2
commit b1de709226
2 changed files with 21 additions and 0 deletions

View File

@@ -136,6 +136,21 @@ async def handle_deep_link(
):
"""Обработка deep linking для анонимных вопросов"""
try:
# Валидируем Telegram ID пользователя
user_id_validation = validator.validate_telegram_id(message.from_user.id)
if not user_id_validation:
logger.error(f"❌ Невалидный Telegram ID: {message.from_user.id}")
await message_service.send_message(
message,
"❌ Ошибка: недопустимый ID пользователя.",
get_main_keyboard_for_user(message.from_user.id)
)
return
# Создаем или обновляем пользователя (важно для любого /start)
current_user = await user_service.create_or_update_user(message.from_user, message.chat.id)
logger.info(f"✅ Пользователь создан/обновлен при deep link: {current_user.telegram_id}")
# Валидируем deep link
validation_result = validator.validate_deep_link(ref_code)
if not validation_result: