From 617a1a9fc91b7df08a33091a136de81f0311a562 Mon Sep 17 00:00:00 2001 From: Jaideep Guntupalli Date: Wed, 13 Mar 2024 10:36:07 +0530 Subject: [PATCH] fix: added additional attributes filter and refactored conversation logic in Instagram message builder --- .../messages/instagram/message_builder.rb | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/app/builders/messages/instagram/message_builder.rb b/app/builders/messages/instagram/message_builder.rb index 48c2c8529..770633150 100644 --- a/app/builders/messages/instagram/message_builder.rb +++ b/app/builders/messages/instagram/message_builder.rb @@ -71,19 +71,14 @@ class Messages::Instagram::MessageBuilder < Messages::Messenger::MessageBuilder def conversation @conversation ||= begin lock_to_single_conversation = @inbox.lock_to_single_conversation + conversations = Conversation.where(conversation_params) + .where("additional_attributes ->> 'type' = 'instagram_direct_message'") if lock_to_single_conversation - Conversation.where(conversation_params).find_by( - "additional_attributes ->> 'type' = 'instagram_direct_message'" - ) || build_conversation + conversations.find_by || build_conversation else - # If lock to single conversation is disabled, we will create a new conversation if previous conversation is resolved - last_conversation = Conversation.where(conversation_params).order(created_at: :desc).first - if last_conversation&.status == 'resolved' - build_conversation - else - last_conversation - end + last_conversation = conversations.order(created_at: :desc).first + last_conversation&.status == 'resolved' ? build_conversation : last_conversation || build_conversation end end end