Remove source_id as primary key for contact

This commit is contained in:
Pranav Raj Sreepuram 2019-08-31 11:52:09 +05:30
parent df5c9de87e
commit beda21b84c
3 changed files with 13 additions and 5 deletions

View file

@ -41,9 +41,13 @@ Assumptions
end end
def contact
@contact ||= @inbox.contacts.find_by(source_id: @sender_id)
end
def build_contact def build_contact
if !@inbox.contacts.exists?(source_id: @sender_id) if contact.nil?
contact = @inbox.contacts.create!(contact_params) @contact = @inbox.contacts.create!(contact_params)
end end
end end
@ -99,7 +103,7 @@ Assumptions
{ {
account_id: @inbox.account_id, account_id: @inbox.account_id,
inbox_id: @inbox.id, inbox_id: @inbox.id,
sender_id: @sender_id sender_id: contact.id
} }
end end

View file

@ -13,7 +13,7 @@ class Conversation < ApplicationRecord
belongs_to :account belongs_to :account
belongs_to :inbox belongs_to :inbox
belongs_to :assignee, class_name: 'User', optional: true belongs_to :assignee, class_name: 'User', optional: true
belongs_to :sender, class_name: 'Contact', primary_key: :source_id belongs_to :sender, class_name: 'Contact'
has_many :messages, dependent: :destroy, autosave: true has_many :messages, dependent: :destroy, autosave: true

View file

@ -14,8 +14,12 @@ class Integrations::Facebook::DeliveryStatus
@params.sender['id'] @params.sender['id']
end end
def contact_id
@contact ||= ::Contact.find_by(source_id: sender_id)
end
def conversation def conversation
@conversation ||= Conversation.find_by(sender_id: sender_id) @conversation ||= ::Conversation.find_by(sender_id: contact_id)
end end
def update_message_status def update_message_status