[feat] add settings with some example schema, initialization and run functionality
This commit is contained in:
1
src/bot/dependencies/__init__.py
Normal file
1
src/bot/dependencies/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from .settings import SettingsProvider
|
||||
1
src/bot/dependencies/settings/__init__.py
Normal file
1
src/bot/dependencies/settings/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from .user_settings import SettingsProvider
|
||||
20
src/bot/dependencies/settings/user_settings.py
Normal file
20
src/bot/dependencies/settings/user_settings.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from aiogram.types import TelegramObject
|
||||
from dishka import Provider, Scope, provide
|
||||
|
||||
from bot.modules.settings import UserSettings
|
||||
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
|
||||
):
|
||||
user_id = 0
|
||||
elif hasattr(event, "inline_query") and event.inline_query is not None:
|
||||
user_id = event.inline_query.from_user.id
|
||||
else:
|
||||
user_id = event.from_user.id
|
||||
|
||||
return await UserSettingsDocument.get_user_settings(user_id)
|
||||
Reference in New Issue
Block a user