27 lines
990 B
Python
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}'")
|