Files
notifications-admin/app/notify_client/email_branding_client.py
Chris Hill-Scott 28b80856df Cache email branding in Redis
If we’re going to be referring to email branding as part of the service
creation journey then we should make sure it doesn’t slow things down
too much by adding an extra API call. Caching things in Redis is a way
of avoiding unneeded API calls.
2018-09-03 14:46:48 +01:00

47 lines
1.6 KiB
Python

from app.notify_client import NotifyAdminAPIClient, cache
class EmailBrandingClient(NotifyAdminAPIClient):
def __init__(self):
super().__init__("a" * 73, "b")
@cache.set('email_branding-{branding_id}')
def get_email_branding(self, branding_id):
return self.get(url='/email-branding/{}'.format(branding_id))
@cache.set('email_branding')
def get_all_email_branding(self, sort_key=None):
brandings = self.get(url='/email-branding')['email_branding']
if sort_key and sort_key in brandings[0]:
brandings.sort(key=lambda branding: branding[sort_key].lower())
return brandings
def get_letter_email_branding(self):
return self.get(url='/dvla_organisations')
@cache.delete('email_branding')
def create_email_branding(self, logo, name, text, colour, domain, brand_type):
data = {
"logo": logo,
"name": name,
"text": text,
"colour": colour,
"domain": domain,
"brand_type": brand_type
}
return self.post(url="/email-branding", data=data)
@cache.delete('email_branding')
@cache.delete('email_branding-{branding_id}')
def update_email_branding(self, branding_id, logo, name, text, colour, domain, brand_type):
data = {
"logo": logo,
"name": name,
"text": text,
"colour": colour,
"domain": domain,
"brand_type": brand_type
}
return self.post(url="/email-branding/{}".format(branding_id), data=data)