[upd] better settings provider user id getter
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from aiogram.types import TelegramObject
|
||||
from aiogram.types import InlineQuery, TelegramObject, User
|
||||
from dishka import Provider, Scope, provide
|
||||
|
||||
from bot.modules.settings import UserSettings
|
||||
@@ -8,13 +8,13 @@ from utils.db import UserSettingsDocument
|
||||
class SettingsProvider(Provider):
|
||||
@provide(scope=Scope.REQUEST)
|
||||
async def get_user_settings(self, event: TelegramObject) -> UserSettings:
|
||||
if not hasattr(event, "from_user") and (
|
||||
not hasattr(event, "inline_query") or event.inline_query is None
|
||||
if isinstance(from_user := getattr(event, "from_user", None), User):
|
||||
user_id = from_user.id
|
||||
elif isinstance(
|
||||
inline_query := getattr(event, "inline_query", None), InlineQuery
|
||||
):
|
||||
user_id = 0
|
||||
elif hasattr(event, "inline_query") and event.inline_query is not None:
|
||||
user_id = event.inline_query.from_user.id
|
||||
user_id = inline_query.from_user.id
|
||||
else:
|
||||
user_id = event.from_user.id
|
||||
user_id = 0
|
||||
|
||||
return await UserSettingsDocument.get_user_settings(user_id)
|
||||
|
||||
Reference in New Issue
Block a user