Source code for regstack.sms.factory
from __future__ import annotations
from typing import TYPE_CHECKING
from regstack.sms.base import SmsService
from regstack.sms.null import NullSmsService
if TYPE_CHECKING:
from regstack.config.schema import SmsConfig
[docs]
def build_sms_service(config: SmsConfig) -> SmsService:
if config.backend == "null":
return NullSmsService(log_bodies=config.log_bodies)
if config.backend == "sns":
from regstack.sms.sns import SnsSmsService
return SnsSmsService(config)
if config.backend == "twilio":
from regstack.sms.twilio import TwilioSmsService
return TwilioSmsService(config)
raise ValueError(f"Unknown SMS backend: {config.backend!r}")