Studio-Yandex-Practicum / ProCharity_back_2.0

bot ProCharity (НКО Фонд Друзья)
13 stars 13 forks source link

Add check tg user doesn't exist #635

Closed StriderDunedain closed 2 weeks ago

StriderDunedain commented 1 month ago

Что сделано?

Изменил место проверки на существование пользователя. Вынес её в BaseUserService

Что теперь?

Не очень уверен, где именно стоит делать проверку, но это место мне показалось самым подходящим - от него наследуются две другие UserService'ы и он используется напрямую в эндпоинте api/users/{telegram_id}. Но, чтобы точно быть уверенным, хочется узнать более опытное мнение

gorskyolga commented 1 month ago

Такая реализация приводит к ошибкам. В проекте есть два UserService в src\api\services\users.py и в src\bot\services\user.py. Они оба используют один и тот же метод репозитория get_by_telegram_id. Все возможные места, где этот метод используется, не проверяла, но как минимум появляется ошибка в регистрации. При попытке нового пользователя Телеграм добавиться в бот возникает ошибка. В общем просто так переименовывать get_by_telegram_id в get_by_telegram_id_or_none нельзя.

gorskyolga commented 1 month ago

Правильно будет переопределить get_by_telegram_id для UserService в src\api\endpoints\users.py.