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:
@@ -136,6 +136,21 @@ async def handle_deep_link(
|
|||||||
):
|
):
|
||||||
"""Обработка deep linking для анонимных вопросов"""
|
"""Обработка deep linking для анонимных вопросов"""
|
||||||
try:
|
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
|
# Валидируем deep link
|
||||||
validation_result = validator.validate_deep_link(ref_code)
|
validation_result = validator.validate_deep_link(ref_code)
|
||||||
if not validation_result:
|
if not validation_result:
|
||||||
|
|||||||
@@ -53,6 +53,12 @@ class TestStartHandlers:
|
|||||||
# TODO: Реализовать тест
|
# TODO: Реализовать тест
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def test_handle_deep_link_creates_user(self):
|
||||||
|
"""Тест что handle_deep_link создает пользователя"""
|
||||||
|
# TODO: Реализовать тест - проверить что при обработке deep link
|
||||||
|
# вызывается user_service.create_or_update_user
|
||||||
|
pass
|
||||||
|
|
||||||
def test_handle_deep_link_invalid(self):
|
def test_handle_deep_link_invalid(self):
|
||||||
"""Тест обработки невалидного deep link"""
|
"""Тест обработки невалидного deep link"""
|
||||||
# TODO: Реализовать тест
|
# TODO: Реализовать тест
|
||||||
|
|||||||
Reference in New Issue
Block a user