diff --git a/phone_verify/backends/smsir.py b/phone_verify/backends/smsir.py new file mode 100644 index 0000000..ead3b39 --- /dev/null +++ b/phone_verify/backends/smsir.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +from __future__ import absolute_import + +# Third Party Stuff +from sms_ir import SmsIr +from requests import ConnectionError + +# Local +from .base import BaseBackend + + +class SmsIrBackend(BaseBackend): + def __init__(self, **options): + super().__init__(**options) + + # Lower case it just to be sure + options = {key.lower(): value for key, value in options.items()} + self._api_key = options.get("api_key", None) + self._linenumber = options.get("linenumber", None) + + self.client = SmsIr( + api_key=self._api_key, + linenumber=self._linenumber, + ) + self.exception_class = ConnectionError + + def send_sms(self, number, message): + self.client.send_sms( + number, + message, + self._linenumber, + ) + + def send_bulk_sms(self, numbers, message): + self.client.send_bulk_sms( + numbers, + message, + self._linenumber, + ) diff --git a/requirements/common.txt b/requirements/common.txt index 1cf11d5..d49f8e5 100644 --- a/requirements/common.txt +++ b/requirements/common.txt @@ -12,3 +12,4 @@ phonenumbers==8.13.2 django-phonenumber-field==7.0.1 twilio==7.15.4 nexmo==2.5.2 +smsir-python==1.0.4