fix: Duplicate instagram conversations for echo messages (#7078)

This commit is contained in:
Tejaswini Chile
2023-05-15 16:25:15 +05:30
committed by GitHub
parent 7dd1562b40
commit 65e91f6a6f
5 changed files with 90 additions and 7 deletions

View File

@@ -63,7 +63,9 @@ class Messages::Instagram::MessageBuilder < Messages::Messenger::MessageBuilder
end
def conversation
@conversation ||= Conversation.find_by(conversation_params) || build_conversation
@conversation ||= Conversation.where(
"additional_attributes ->> 'type' = 'instagram_direct_message'"
).find_by(conversation_params) || build_conversation
end
def message_content
@@ -95,7 +97,8 @@ class Messages::Instagram::MessageBuilder < Messages::Messenger::MessageBuilder
def build_conversation
@contact_inbox ||= contact.contact_inboxes.find_by!(source_id: message_source_id)
Conversation.create!(conversation_params.merge(
contact_inbox_id: @contact_inbox.id
contact_inbox_id: @contact_inbox.id,
additional_attributes: { type: 'instagram_direct_message' }
))
end
@@ -103,10 +106,7 @@ class Messages::Instagram::MessageBuilder < Messages::Messenger::MessageBuilder
{
account_id: @inbox.account_id,
inbox_id: @inbox.id,
contact_id: contact.id,
additional_attributes: {
type: 'instagram_direct_message'
}
contact_id: contact.id
}
end

View File

@@ -14,7 +14,7 @@ class Webhooks::InstagramEventsJob < ApplicationJob
@entries.each do |entry|
entry = entry.with_indifferent_access
entry[:messaging].each do |messaging|
messages(entry).each do |messaging|
send(@event_name, messaging) if event_name(messaging)
end
end
@@ -29,4 +29,8 @@ class Webhooks::InstagramEventsJob < ApplicationJob
def message(messaging)
::Instagram::MessageText.new(messaging).perform
end
def messages(entry)
(entry[:messaging].presence || entry[:standby])
end
end