From d1f06992b29b9fd104427f2544b58d6cd2bc6160 Mon Sep 17 00:00:00 2001 From: Jaques Dias Date: Wed, 2 Oct 2019 15:03:07 +0200 Subject: [PATCH] Refactor create_activity method on Conversation model (#105) --- app/models/conversation.rb | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/app/models/conversation.rb b/app/models/conversation.rb index 6a8038e01..5ea5aaa92 100644 --- a/app/models/conversation.rb +++ b/app/models/conversation.rb @@ -121,23 +121,22 @@ class Conversation < ApplicationRecord end def create_activity - if status_changed? && Current.user #to prevent error when conversation is reopened by customer itself by sending a new message - if resolved? - content = "Conversation was marked resolved by #{Current.user.try(:name)}" - else - content = "Conversation was reopened by #{Current.user.try(:name)}" - end - self.messages.create(activity_message_params(content)) - end + return unless Current.user - if assignee_id_changed? && Current.user - if assignee_id - content = "Assigned to #{assignee.name} by #{Current.user.try(:name)}" - else - content = "Conversation unassigned by #{Current.user.try(:name)}" - end - self.messages.create(activity_message_params(content)) - end + self.messages.create(activity_message_params(status_changed_message)) if status_changed? + self.messages.create(activity_message_params(assignee_changed_message)) if assignee_id_changed? + end + + def status_changed_message + return "Conversation was marked resolved by #{Current.user.try(:name)}" if resolved? + + "Conversation was reopened by #{Current.user.try(:name)}" + end + + def assignee_changed_message + return "Assigned to #{assignee.name} by #{Current.user.try(:name)}" if assignee_id + + "Conversation unassigned by #{Current.user.try(:name)}" end def activity_message_params content