From 18f6da338a476f7d0b200b32f0c42c0d3251b843 Mon Sep 17 00:00:00 2001 From: Todd Dembrey <todd.dembrey@torchbox.com> Date: Mon, 23 Jul 2018 17:28:16 +0100 Subject: [PATCH] Factor out the base adaptor class --- opentech/apply/activity/messaging.py | 49 ++++++++++++++++------------ 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/opentech/apply/activity/messaging.py b/opentech/apply/activity/messaging.py index 08b612047..5e0f88023 100644 --- a/opentech/apply/activity/messaging.py +++ b/opentech/apply/activity/messaging.py @@ -16,12 +16,33 @@ class MESSAGES(Enum): COMMENT = 'comment' -class MessageAdapter: - def process(self, request, payload): - messages.add_message(request, messages.INFO, 'Hello world.') +class AdapterBase: + messages = {} + + def message(self, message_type, **kwargs): + message = self.messages[message_type] + try: + # see if its a method on the adapter + method = getattr(self, message) + except AttributeError: + return message.format(**kwargs) + else: + return method(**kwargs) + + def process(self, message_type, **kwargs): + try: + message = self.message(message_type, **kwargs) + except KeyError: + return + self.send_message(message, **kwargs) + + def send_message(self, message, **kwargs): + raise NotImplementedError() + -class ActivityAdapter: + +class ActivityAdapter(AdapterBase): messages = { MESSAGES.TRANSITION: 'Progressed from {old_phase.display_name} to {submission.phase}', MESSAGES.NEW_SUBMISSION: 'Submitted {submission.title} for {submission.page.title}', @@ -33,15 +54,6 @@ class ActivityAdapter: MESSAGES.NEW_REVIEW: 'Created a review for {submission.title}' } - def message(self, message_type, **kwargs): - message = self.messages[message_type] - try: - method = getattr(self, message) - except AttributeError: - return message.format(**kwargs) - else: - return method(**kwargs) - def reviewers_updated(self, added, removed, **kwargs): message = ['Reviewers updated.'] if added: @@ -54,15 +66,10 @@ class ActivityAdapter: return ' '.join(message) - def process(self, message_type, **kwargs): - try: - message = self.message(message_type, **kwargs) - except KeyError: - return - + def send_message(self, message, user, submission, **kwargs): Activity.actions.create( - user=kwargs['user'], - submission=kwargs['submission'], + user=user, + submission=submission, message=message, ) -- GitLab