Rewrite cache decorator to use format string

This is easier to read than having to understand the arguments 1…n of
the cache decorator are ‘magic’, and gives us more flexibility about
how the cache keys are formatted, eg being able to add words in the
middle of them.

Also changes the key format for all templates to be
`service-{service_id}-templates` instead of `templates-{service_id}`
because then it’s clearer what the ID represents.
This commit is contained in:
Chris Hill-Scott
2018-04-20 16:32:02 +01:00
parent b28e8691a6
commit 06de94f1c5
6 changed files with 80 additions and 91 deletions

View File

@@ -9,7 +9,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
def __init__(self):
super().__init__("a" * 73, "b")
@cache.delete('user', 'user_id')
@cache.delete('user-{user_id}')
def create_service(
self,
service_name,
@@ -34,7 +34,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
data = _attach_current_user(data)
return self.post("/service", data)['data']['id']
@cache.set('service', 'service_id')
@cache.set('service-{service_id}')
def get_service(self, service_id):
return self._get_service(service_id, detailed=False, today_only=False)
@@ -74,7 +74,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
params_dict['only_active'] = True
return self.get_services(params_dict)
@cache.delete('service', 'service_id')
@cache.delete('service-{service_id}')
def update_service(
self,
service_id,
@@ -115,20 +115,20 @@ class ServiceAPIClient(NotifyAdminAPIClient):
def update_service_with_properties(self, service_id, properties):
return self.update_service(service_id, **properties)
@cache.delete('service', 'service_id')
@cache.delete('service-{service_id}')
def archive_service(self, service_id):
return self.post('/service/{}/archive'.format(service_id), data=None)
@cache.delete('service', 'service_id')
@cache.delete('service-{service_id}')
def suspend_service(self, service_id):
return self.post('/service/{}/suspend'.format(service_id), data=None)
@cache.delete('service', 'service_id')
@cache.delete('service-{service_id}')
def resume_service(self, service_id):
return self.post('/service/{}/resume'.format(service_id), data=None)
@cache.delete('service', 'service_id')
@cache.delete('user', 'user_id')
@cache.delete('service-{service_id}')
@cache.delete('user-{user_id}')
def remove_user_from_service(self, service_id, user_id):
"""
Remove a user from a service
@@ -139,7 +139,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
data = _attach_current_user({})
return self.delete(endpoint, data)
@cache.delete('templates', 'service_id')
@cache.delete('service-{service_id}-templates')
def create_service_template(self, name, type_, content, service_id, subject=None, process_type='normal'):
"""
Create a service template.
@@ -159,9 +159,9 @@ class ServiceAPIClient(NotifyAdminAPIClient):
endpoint = "/service/{0}/template".format(service_id)
return self.post(endpoint, data)
@cache.delete('templates', 'service_id')
@cache.delete('template', 'id_')
@cache.delete('template_versions', 'id_')
@cache.delete('service-{service_id}-templates')
@cache.delete('template-{id_}-version-None')
@cache.delete('template-{id_}-versions')
def update_service_template(self, id_, name, type_, content, service_id, subject=None, process_type=None):
"""
Update a service template.
@@ -185,9 +185,9 @@ class ServiceAPIClient(NotifyAdminAPIClient):
endpoint = "/service/{0}/template/{1}".format(service_id, id_)
return self.post(endpoint, data)
@cache.delete('templates', 'service_id')
@cache.delete('template', 'id_')
@cache.delete('template_versions', 'id_')
@cache.delete('service-{service_id}-templates')
@cache.delete('template-{id_}-version-None')
@cache.delete('template-{id_}-versions')
def redact_service_template(self, service_id, id_):
return self.post(
"/service/{}/template/{}".format(service_id, id_),
@@ -196,9 +196,9 @@ class ServiceAPIClient(NotifyAdminAPIClient):
),
)
@cache.delete('templates', 'service_id')
@cache.delete('template', 'template_id')
@cache.delete('template_versions', 'template_id')
@cache.delete('service-{service_id}-templates')
@cache.delete('template-{template_id}-version-None')
@cache.delete('template-{template_id}-versions')
def update_service_template_sender(self, service_id, template_id, reply_to):
data = {
'reply_to': reply_to,
@@ -209,7 +209,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
data
)
@cache.set('template', 'template_id', 'version')
@cache.set('template-{template_id}-version-{version}')
def get_service_template(self, service_id, template_id, version=None):
"""
Retrieve a service template.
@@ -221,7 +221,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
endpoint = '{base}/version/{version}'.format(base=endpoint, version=version)
return self.get(endpoint)
@cache.set('template_versions', 'template_id')
@cache.set('template-{template_id}-versions')
def get_service_template_versions(self, service_id, template_id):
"""
Retrieve a list of versions for a template
@@ -232,7 +232,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
)
return self.get(endpoint)
@cache.set('templates', 'service_id')
@cache.set('service-{service_id}-templates')
def get_service_templates(self, service_id):
"""
Retrieve all templates for service.
@@ -252,9 +252,9 @@ class ServiceAPIClient(NotifyAdminAPIClient):
)
])
@cache.delete('templates', 'service_id')
@cache.delete('template', 'template_id')
@cache.delete('template_versions', 'template_id')
@cache.delete('service-{service_id}-templates')
@cache.delete('template-{template_id}-version-None')
@cache.delete('template-{template_id}-versions')
def delete_service_template(self, service_id, template_id):
"""
Set a service template's archived flag to True
@@ -284,7 +284,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
def get_whitelist(self, service_id):
return self.get(url='/service/{}/whitelist'.format(service_id))
@cache.delete('service', 'service_id')
@cache.delete('service-{service_id}')
def update_whitelist(self, service_id, data):
return self.put(url='/service/{}/whitelist'.format(service_id), data=data)
@@ -322,7 +322,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
'/service/{}/inbound-sms/summary'.format(service_id)
)
@cache.delete('service', 'service_id')
@cache.delete('service-{service_id}')
def create_service_inbound_api(self, service_id, url, bearer_token, user_id):
data = {
"url": url,
@@ -331,7 +331,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
}
return self.post("/service/{}/inbound-api".format(service_id), data)
@cache.delete('service', 'service_id')
@cache.delete('service-{service_id}')
def update_service_inbound_api(self, service_id, url, bearer_token, user_id, inbound_api_id):
data = {
"url": url,
@@ -363,7 +363,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
)
)
@cache.delete('service', 'service_id')
@cache.delete('service-{service_id}')
def add_reply_to_email_address(self, service_id, email_address, is_default=False):
return self.post(
"/service/{}/email-reply-to".format(service_id),
@@ -373,7 +373,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
}
)
@cache.delete('service', 'service_id')
@cache.delete('service-{service_id}')
def update_reply_to_email_address(self, service_id, reply_to_email_id, email_address, is_default=False):
return self.post(
"/service/{}/email-reply-to/{}".format(
@@ -392,7 +392,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
def get_letter_contact(self, service_id, letter_contact_id):
return self.get("/service/{}/letter-contact/{}".format(service_id, letter_contact_id))
@cache.delete('service', 'service_id')
@cache.delete('service-{service_id}')
def add_letter_contact(self, service_id, contact_block, is_default=False):
return self.post(
"/service/{}/letter-contact".format(service_id),
@@ -402,7 +402,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
}
)
@cache.delete('service', 'service_id')
@cache.delete('service-{service_id}')
def update_letter_contact(self, service_id, letter_contact_id, contact_block, is_default=False):
return self.post(
"/service/{}/letter-contact/{}".format(
@@ -428,7 +428,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
"/service/{}/sms-sender/{}".format(service_id, sms_sender_id)
)
@cache.delete('service', 'service_id')
@cache.delete('service-{service_id}')
def add_sms_sender(self, service_id, sms_sender, is_default=False, inbound_number_id=None):
data = {
"sms_sender": sms_sender,
@@ -438,7 +438,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
data["inbound_number_id"] = inbound_number_id
return self.post("/service/{}/sms-sender".format(service_id), data=data)
@cache.delete('service', 'service_id')
@cache.delete('service-{service_id}')
def update_sms_sender(self, service_id, sms_sender_id, sms_sender, is_default=False):
return self.post(
"/service/{}/sms-sender/{}".format(service_id, sms_sender_id),
@@ -455,7 +455,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
)
)['data']
@cache.delete('service', 'service_id')
@cache.delete('service-{service_id}')
def update_service_callback_api(self, service_id, url, bearer_token, user_id, callback_api_id):
data = {
"url": url,
@@ -465,7 +465,7 @@ class ServiceAPIClient(NotifyAdminAPIClient):
data['bearer_token'] = bearer_token
return self.post("/service/{}/delivery-receipt-api/{}".format(service_id, callback_api_id), data)
@cache.delete('service', 'service_id')
@cache.delete('service-{service_id}')
def create_service_callback_api(self, service_id, url, bearer_token, user_id):
data = {
"url": url,