refactor: abstracted common query

This commit is contained in:
Jaideep Guntupalli
2024-03-31 10:13:20 +05:30
parent 54d522aa50
commit e74b318772
@@ -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