import urllib.parse import requests from django.conf import settings import logging from utils.clients.sms.sms import BaseSMSClient logger = logging.getLogger(__name__) class MobinSMSClient(BaseSMSClient): access_token = settings.MOBIN_SMS_TOKEN base_url = 'https://connect.mobinsms.com' sender = '9890008050' def send_sms(self, phone_number, message): return self.send_sms_quick([phone_number], message) def send_sms_quick(self, phone_number_list, message): try: path = '/v1/send/quick' url = urllib.parse.urljoin(self.base_url, path) body = { "from": self.sender, "to": phone_number_list, "body": message, "unique_id": "" # UDH (optional field) } headers = { "X-API-Key": self.access_token, 'Content-Type': 'application/json', 'Accept': 'application/json', } response = requests.post(url, headers=headers, json=body, timeout=10) logger.info(response.text) return response.json() except Exception as e: logger.exception(f'error sending sms to {phone_number_list}: {e}')