feat(sms): add selectable provider strategy

This commit is contained in:
2026-07-14 09:45:40 +03:30
parent 2264b7fc95
commit e382c4f93a
10 changed files with 171 additions and 12 deletions

View File

@@ -0,0 +1,26 @@
import httpx
from gapido_auth.config import Settings
from gapido_auth.domain.ports import SmsClient
from gapido_auth.infrastructure.kavenegar_client import KavenegarSmsClient
from gapido_auth.infrastructure.sms_ir_client import SmsIrSmsClient
def create_sms_client(
settings: Settings,
transport: httpx.AsyncBaseTransport | None = None,
) -> SmsClient:
match settings.sms_provider:
case "kavenegar":
return KavenegarSmsClient(settings.kavenegar_api_key, transport=transport)
case "sms_ir":
return SmsIrSmsClient(settings.sms_ir_api_key, transport=transport)
def get_sms_template(settings: Settings) -> str:
match settings.sms_provider:
case "kavenegar":
return settings.kavenegar_login_template
case "sms_ir":
return str(settings.sms_ir_verify_template_id)