2016-02-17 17:48:23 +00:00
|
|
|
from app.clients import ClientException, Client
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EmailClientException(ClientException):
|
|
|
|
|
'''
|
|
|
|
|
Base Exception for EmailClients
|
|
|
|
|
'''
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
2020-12-30 17:06:49 +00:00
|
|
|
class EmailClientNonRetryableException(ClientException):
|
|
|
|
|
'''
|
|
|
|
|
Represents an error returned from the email client API with a 4xx response code
|
|
|
|
|
that should not be retried and should instead be marked as technical failure.
|
|
|
|
|
An example of this would be an email address that makes it through our
|
|
|
|
|
validation rules but is rejected by SES. There is no point in retrying this type as
|
|
|
|
|
it will always fail however many calls to SES. Whereas a throttling error would not
|
|
|
|
|
use this exception as it may succeed if we retry
|
|
|
|
|
'''
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
2016-02-17 17:48:23 +00:00
|
|
|
class EmailClient(Client):
|
|
|
|
|
'''
|
|
|
|
|
Base Email client for sending emails.
|
|
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
def send_email(self, *args, **kwargs):
|
2018-11-07 13:39:08 +00:00
|
|
|
raise NotImplementedError('TODO Need to implement.')
|
2016-02-25 11:23:04 +00:00
|
|
|
|
|
|
|
|
def get_name(self):
|
2018-11-07 13:39:08 +00:00
|
|
|
raise NotImplementedError('TODO Need to implement.')
|