Refactor create_activity method on Conversation model (#105)

This commit is contained in:
Jaques Dias
2019-10-02 15:03:07 +02:00
committed by Pranav Raj S
parent f2544816d4
commit d1f06992b2

View File

@@ -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