Files
notifications-api/app/clients/__init__.py
2022-06-25 13:05:10 -07:00

47 lines
1.1 KiB
Python

from celery import current_app
class ClientException(Exception):
'''
Base Exceptions for sending notifications that fail
'''
pass
class Client(object):
'''
Base client for sending notifications.
'''
pass
STATISTICS_REQUESTED = 'requested'
STATISTICS_DELIVERED = 'delivered'
STATISTICS_FAILURE = 'failure'
class NotificationProviderClients(object):
sms_clients = {}
email_clients = {}
def init_app(self, sms_clients, email_clients):
for client in sms_clients:
self.sms_clients[client.name] = client
for client in email_clients:
self.email_clients[client.name] = client
def get_sms_client(self, name):
return self.sms_clients.get(name)
def get_email_client(self, name):
return self.email_clients.get(name)
def get_client_by_name_and_type(self, name, notification_type):
assert notification_type in ['email', 'sms']
if notification_type == 'email':
return self.get_email_client(name)
if notification_type == 'sms':
return self.get_sms_client(name)