[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 dishka import Provider, Scope, provide
|
||||||
|
|
||||||
from bot.modules.settings import UserSettings
|
from bot.modules.settings import UserSettings
|
||||||
@@ -8,13 +8,13 @@ from utils.db import UserSettingsDocument
|
|||||||
class SettingsProvider(Provider):
|
class SettingsProvider(Provider):
|
||||||
@provide(scope=Scope.REQUEST)
|
@provide(scope=Scope.REQUEST)
|
||||||
async def get_user_settings(self, event: TelegramObject) -> UserSettings:
|
async def get_user_settings(self, event: TelegramObject) -> UserSettings:
|
||||||
if not hasattr(event, "from_user") and (
|
if isinstance(from_user := getattr(event, "from_user", None), User):
|
||||||
not hasattr(event, "inline_query") or event.inline_query is None
|
user_id = from_user.id
|
||||||
|
elif isinstance(
|
||||||
|
inline_query := getattr(event, "inline_query", None), InlineQuery
|
||||||
):
|
):
|
||||||
user_id = 0
|
user_id = inline_query.from_user.id
|
||||||
elif hasattr(event, "inline_query") and event.inline_query is not None:
|
|
||||||
user_id = event.inline_query.from_user.id
|
|
||||||
else:
|
else:
|
||||||
user_id = event.from_user.id
|
user_id = 0
|
||||||
|
|
||||||
return await UserSettingsDocument.get_user_settings(user_id)
|
return await UserSettingsDocument.get_user_settings(user_id)
|
||||||
|
|||||||
Reference in New Issue
Block a user