Files
Birthday-Pool-Bot/birthday_pool_bot/telegram_bot/fabric.py

27 lines
990 B
Python

from birthday_pool_bot.repositories import RepositoriesContainer
from .base import BaseTelegramBotService
from .enums import TelegramBotMethodEnum
from .polling import TelegramBotPollingService
from .settings import TelegramBotSettings
from .webhook import TelegramBotWebhookService
def get_telegram_bot_service(
settings: TelegramBotSettings,
repositories_container: RepositoriesContainer,
) -> BaseTelegramBotService:
match settings.method:
case TelegramBotMethodEnum.POLLING.value:
return TelegramBotPollingService(
settings=settings,
repositories_container=repositories_container,
)
case TelegramBotMethodEnum.WEBHOOK.value:
return TelegramBotWebhookService(
settings=settings,
repositories_container=repositories_container,
)
case _:
raise ValueError(f"Cannot create telegram bot with method '{settings.method}'")