expephalon/core/classes/sms.py

33 lines
1 KiB
Python
Raw Normal View History

from typing import Union
class SMSNotSent(Exception):
'''SMS providers must raise SMSNotSent if an SMS was reported as not sent by the gateway.'''
class BaseSMSProvider:
'''SMS providers must be subclasses of BaseSMSProvider and implement at least is_active and sendSMS().'''
@property
def get_name(self):
return "Base SMS Provider"
@property
def get_logo(self):
return ""
@property
def is_active(self):
'''Returns True if the provider is properly configured and ready to use.'''
raise NotImplementedError(f"{type(self)} does not implement is_active!")
@property
def get_edit_url(self):
return
def sendSMS(self, recipients: Union[str, list], message: str):
'''Send an SMS message to one or more recipients
:param recipients: Recipient phone number as a string, or a list of multiple phone number strings
:param message: Message to be sent as a string
'''
raise NotImplementedError(f"{type(self)} does not implement sendSMS()!")