mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-15 09:42:38 -05:00
47 lines
1.1 KiB
Python
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)
|