diff --git a/app/builders/messages/facebook/message_builder.rb b/app/builders/messages/facebook/message_builder.rb index 2b4ae8bf2..53c6147e6 100644 --- a/app/builders/messages/facebook/message_builder.rb +++ b/app/builders/messages/facebook/message_builder.rb @@ -56,13 +56,9 @@ class Messages::Facebook::MessageBuilder < Messages::Messenger::MessageBuilder @conversation ||= set_conversation_based_on_inbox_config end - def facebook_direct_message_conversation - Conversation.where(conversation_params).order(created_at: :desc).first - end - def set_conversation_based_on_inbox_config if @inbox.lock_to_single_conversation - facebook_direct_message_conversation || build_conversation + Conversation.find_by(conversation_params) || build_conversation else find_or_build_for_multiple_conversations end @@ -70,13 +66,10 @@ class Messages::Facebook::MessageBuilder < Messages::Messenger::MessageBuilder def find_or_build_for_multiple_conversations # If lock to single conversation is disabled, we will create a new conversation if previous conversation is resolved - last_conversation = facebook_direct_message_conversation + last_conversation = Conversation.where(conversation_params).where.not(status: :resolved).order(created_at: :desc).first + return build_conversation if last_conversation.nil? - if last_conversation.nil? || last_conversation.resolved? - build_conversation - else - last_conversation - end + last_conversation end def build_conversation diff --git a/app/builders/messages/instagram/message_builder.rb b/app/builders/messages/instagram/message_builder.rb index 7e2f3b9ea..24889d205 100644 --- a/app/builders/messages/instagram/message_builder.rb +++ b/app/builders/messages/instagram/message_builder.rb @@ -74,19 +74,19 @@ class Messages::Instagram::MessageBuilder < Messages::Messenger::MessageBuilder def instagram_direct_message_conversation Conversation.where(conversation_params) - .where("additional_attributes ->> 'type' = 'instagram_direct_message'").order(created_at: :desc).first + .where("additional_attributes ->> 'type' = 'instagram_direct_message'") end def set_conversation_based_on_inbox_config if @inbox.lock_to_single_conversation - instagram_direct_message_conversation || build_conversation + instagram_direct_message_conversation.first || build_conversation else find_or_build_for_multiple_conversations end end def find_or_build_for_multiple_conversations - last_conversation = instagram_direct_message_conversation + last_conversation = instagram_direct_message_conversation.order(created_at: :desc).first if last_conversation.nil? || last_conversation.resolved? build_conversation