From e74b318772e2fba3e0fa4956bcd2809a2fd37aa8 Mon Sep 17 00:00:00 2001 From: Jaideep Guntupalli Date: Sun, 31 Mar 2024 10:13:20 +0530 Subject: [PATCH] refactor: abstracted common query --- app/builders/messages/instagram/message_builder.rb | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/builders/messages/instagram/message_builder.rb b/app/builders/messages/instagram/message_builder.rb index e527f0921..24889d205 100644 --- a/app/builders/messages/instagram/message_builder.rb +++ b/app/builders/messages/instagram/message_builder.rb @@ -72,18 +72,21 @@ class Messages::Instagram::MessageBuilder < Messages::Messenger::MessageBuilder @conversation ||= set_conversation_based_on_inbox_config end + def instagram_direct_message_conversation + Conversation.where(conversation_params) + .where("additional_attributes ->> 'type' = 'instagram_direct_message'") + end + def set_conversation_based_on_inbox_config if @inbox.lock_to_single_conversation - Conversation.where(conversation_params) - .find_by("additional_attributes ->> 'type' = 'instagram_direct_message'") || 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 = Conversation.where(conversation_params) - .where("additional_attributes ->> 'type' = 'instagram_direct_message'").order(created_at: :desc).first + last_conversation = instagram_direct_message_conversation.order(created_at: :desc).first if last_conversation.nil? || last_conversation.resolved? build_conversation