diff --git a/CONTRIBUTE.md b/CONTRIBUTE.md index ccf3cc0..886813d 100644 --- a/CONTRIBUTE.md +++ b/CONTRIBUTE.md @@ -70,14 +70,13 @@ urfu-daddy/ │ │ ├── __init__.py # Функция для запуска бота. │ │ ├── handlers/ # Обработка всех ивентов. │ │ │ ├── callbacks/ # Обработка запросов. -│ │ │ ├── commands/ # Обработка комманд. -│ │ │ ├── utils/ # Вспомогательные компоненты для хендлеров. -│ │ ├── middlewares/ # Мидлвари для диспетчера. -│ │ └── services/ # Взаимодействие с другими сервисами бота. +│ │ │ └── commands/ # Обработка комманд. +│ │ ├── middlewares/ # Мидлвари для диспетчера/роутеров. +│ │ ├── services/ # Взаимодействие с другими сервисами бота. +│ │ └── utils/ # Вспомогательные компоненты для для бота. │ ├── config/ # Получение env-настроек, настройка логирования. │ ├── database/ # Инициализация и настройка БД. -│ ├── locales/ # Папка с локализацией проекта. -│ └── redis_client/ # Настройка redis-клиента. +│ └── locales/ # Папка с локализацией проекта. ├── LICENSE # Лицензия проекта. ├── README.md # Описание проекта. ├── CONTRIBUTE.md # Этот файл. diff --git a/src/bot/handlers/commands/help.py b/src/bot/handlers/commands/help.py index efaf1c6..38edafc 100644 --- a/src/bot/handlers/commands/help.py +++ b/src/bot/handlers/commands/help.py @@ -2,7 +2,7 @@ from aiogram.types import Message from bot.handlers import registry from bot.handlers.utils.types import ChatType -from bot.services.database import check_user +from bot.services.database import check_telegram_user @registry.register( @@ -14,7 +14,7 @@ async def cmd_help(message: Message, session) -> None: if message.from_user is None: return - user = await check_user(session, message.from_user.id) + user = await check_telegram_user(session, message.from_user.id) await message.answer( "Help Command Function Answer Text. " diff --git a/src/bot/middlewares/database.py b/src/bot/middlewares/database.py index a814e92..8b72c58 100644 --- a/src/bot/middlewares/database.py +++ b/src/bot/middlewares/database.py @@ -7,7 +7,6 @@ from sqlalchemy.ext.asyncio import async_sessionmaker class DatabaseSessionMiddleware(BaseMiddleware): def __init__(self, session_maker: async_sessionmaker): - super().__init__() self.session_maker = session_maker async def __call__( diff --git a/src/bot/services/__init__.py b/src/bot/services/__init__.py index 7dfd4a8..f52f96a 100644 --- a/src/bot/services/__init__.py +++ b/src/bot/services/__init__.py @@ -1,5 +1,4 @@ -__all__ = [] +__all__ = ["check_telegram_user"] -# TODO: Add bot business logic -# (working with other service components). +from .database import check_telegram_user diff --git a/src/bot/services/database/__init__.py b/src/bot/services/database.py similarity index 82% rename from src/bot/services/database/__init__.py rename to src/bot/services/database.py index b6e7f59..6472bae 100644 --- a/src/bot/services/database/__init__.py +++ b/src/bot/services/database.py @@ -1,13 +1,10 @@ -__all__ = ["check_user"] - - from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession -from database.models import TelegramUser +from database import TelegramUser -async def _get_user( +async def _get_telegram_user( session: AsyncSession, telegram_id: int, ) -> TelegramUser | None: @@ -21,7 +18,7 @@ async def _get_user( return result.scalar() -async def _add_user( +async def _add_telegram_user( session: AsyncSession, telegram_id: int, ) -> TelegramUser: @@ -38,7 +35,7 @@ async def _add_user( return user -async def check_user( +async def check_telegram_user( session: AsyncSession, telegram_id: int, ) -> TelegramUser: @@ -47,9 +44,9 @@ async def check_user( Если его нет, то добавляет. Всегда возвращает объект пользователя. """ - result = await _get_user(session, telegram_id) + result = await _get_telegram_user(session, telegram_id) if result is not None: return result - return await _add_user(session, telegram_id) + return await _add_telegram_user(session, telegram_id) diff --git a/src/bot/handlers/utils/filters/__init__.py b/src/bot/utils/filters/__init__.py similarity index 97% rename from src/bot/handlers/utils/filters/__init__.py rename to src/bot/utils/filters/__init__.py index e59a335..c4d3852 100644 --- a/src/bot/handlers/utils/filters/__init__.py +++ b/src/bot/utils/filters/__init__.py @@ -6,7 +6,7 @@ from typing import Union from aiogram.filters import BaseFilter from aiogram.types import CallbackQuery, Message -from bot.handlers.utils.types import ChatType +from bot.utils.types import ChatType class ChatTypeFilter(BaseFilter): diff --git a/src/bot/handlers/utils/keyboards/__init__.py b/src/bot/utils/keyboards/__init__.py similarity index 100% rename from src/bot/handlers/utils/keyboards/__init__.py rename to src/bot/utils/keyboards/__init__.py diff --git a/src/bot/handlers/utils/registry/__init__.py b/src/bot/utils/registry/__init__.py similarity index 98% rename from src/bot/handlers/utils/registry/__init__.py rename to src/bot/utils/registry/__init__.py index 4854455..ba6307d 100644 --- a/src/bot/handlers/utils/registry/__init__.py +++ b/src/bot/utils/registry/__init__.py @@ -13,8 +13,8 @@ from aiogram.types.bot_command_scope_all_private_chats import ( ) from loguru import logger as loguru_logger -from bot.handlers.utils.filters import ChatTypeFilter -from bot.handlers.utils.types import ( +from bot.utils.filters import ChatTypeFilter +from bot.utils.types import ( ChatType, HandlerMeta, HandlerType, diff --git a/src/bot/handlers/utils/states/__init__.py b/src/bot/utils/states/__init__.py similarity index 100% rename from src/bot/handlers/utils/states/__init__.py rename to src/bot/utils/states/__init__.py diff --git a/src/bot/handlers/utils/types/__init__.py b/src/bot/utils/types/__init__.py similarity index 100% rename from src/bot/handlers/utils/types/__init__.py rename to src/bot/utils/types/__init__.py diff --git a/src/bot/handlers/utils/types/chat.py b/src/bot/utils/types/chat.py similarity index 100% rename from src/bot/handlers/utils/types/chat.py rename to src/bot/utils/types/chat.py diff --git a/src/bot/handlers/utils/types/handler.py b/src/bot/utils/types/handler.py similarity index 94% rename from src/bot/handlers/utils/types/handler.py rename to src/bot/utils/types/handler.py index 34a2c1c..d589bb9 100644 --- a/src/bot/handlers/utils/types/handler.py +++ b/src/bot/utils/types/handler.py @@ -1,7 +1,7 @@ from dataclasses import dataclass from typing import Any, Awaitable, Callable, TypeVar -from bot.handlers.utils.types import ChatType +from bot.utils.types import ChatType HandlerType = TypeVar( "HandlerType", bound=Callable[[Any], Awaitable[Any]]