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}'")