feat(sms): add selectable provider strategy
This commit is contained in:
26
src/gapido_auth/infrastructure/sms_provider.py
Normal file
26
src/gapido_auth/infrastructure/sms_provider.py
Normal 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)
|
||||
|
||||
Reference in New Issue
Block a user