diff --git a/app/notify_client/models.py b/app/notify_client/models.py index 07317ef8e..4261ff057 100644 --- a/app/notify_client/models.py +++ b/app/notify_client/models.py @@ -265,73 +265,32 @@ class AnonymousUser(AnonymousUserMixin): class Service(dict): + ALLOWED_PROPERTIES = { + 'active', + 'branding', + 'dvla_organisation', + 'email_branding', + 'email_from', + 'id', + 'inbound_api', + 'letter_contact_block', + 'message_limit', + 'name', + 'organisation_type', + 'permissions', + 'prefix_sms', + 'research_mode', + 'service_callback_api', + } + def __init__(self, _dict): # in the case of a bad request current service may be `None` super().__init__(_dict or {}) - @property - def id(self): - return self['id'] - - @property - def name(self): - return self['name'] - - @property - def inbound_api(self): - return self['inbound_api'] - - @property - def callback_api(self): - return self['callback_api'] - - @property - def service_callback_api(self): - return self['service_callback_api'] - - @property - def organisation_type(self): - return self['organisation_type'] - - @property - def active(self): - return self['active'] - - @property - def message_limit(self): - return self['message_limit'] - - @property - def email_branding(self): - return self['email_branding'] - - @property - def email_from(self): - return self['email_from'] - - @property - def letter_contact_block(self): - return self['letter_contact_block'] - - @property - def prefix_sms(self): - return self['prefix_sms'] - - @property - def research_mode(self): - return self['research_mode'] - - @property - def branding(self): - return self['branding'] - - @property - def dvla_organisation(self): - return self['dvla_organisation'] - - @property - def permissions(self): - return self['permissions'] + def __getattr__(self, attr): + if attr in self.ALLOWED_PROPERTIES: + return self[attr] + raise AttributeError @property def trial_mode(self):