diff --git a/.rubocop.yml b/.rubocop.yml index 1cdfbc713..e4963c818 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -62,6 +62,7 @@ Metrics/ModuleLength: Exclude: - lib/seeders/message_seeder.rb - spec/support/slack_stubs.rb + - app/mailboxes/mailbox_helper.rb Rails/ApplicationController: Exclude: - 'app/controllers/api/v1/widget/messages_controller.rb' diff --git a/app/builders/contact_inbox_with_contact_builder.rb b/app/builders/contact_inbox_with_contact_builder.rb index 759f2f6e1..09745c51e 100644 --- a/app/builders/contact_inbox_with_contact_builder.rb +++ b/app/builders/contact_inbox_with_contact_builder.rb @@ -74,8 +74,8 @@ class ContactInboxWithContactBuilder end # If name is present, split it into first and last name - name_parts = split_first_and_last_name(contact_attributes[:name]) - [name_parts[:first_name], '', name_parts[:last_name]] + name_parts = parse_name(contact_attributes[:name]) + [name_parts[:first_name], name_parts[:middle_name], name_parts[:last_name]] end def find_contact diff --git a/app/mailboxes/mailbox_helper.rb b/app/mailboxes/mailbox_helper.rb index 3407ef25c..27547c390 100644 --- a/app/mailboxes/mailbox_helper.rb +++ b/app/mailboxes/mailbox_helper.rb @@ -98,14 +98,16 @@ module MailboxHelper end def create_contact - name_parts = split_first_and_last_name(identify_contact_name) + name_parts = parse_name(identify_contact_name) first_name = name_parts[:first_name] + middle_name = name_parts[:middle_name] last_name = name_parts[:last_name] @contact_inbox = ::ContactInboxWithContactBuilder.new( source_id: processed_mail.original_sender, inbox: @inbox, contact_attributes: { name: first_name, + middle_name: middle_name, last_name: last_name, email: processed_mail.original_sender, additional_attributes: { diff --git a/app/models/channel/facebook_page.rb b/app/models/channel/facebook_page.rb index e4136109a..2e8fba8b0 100644 --- a/app/models/channel/facebook_page.rb +++ b/app/models/channel/facebook_page.rb @@ -38,13 +38,14 @@ class Channel::FacebookPage < ApplicationRecord end def create_contact_inbox(instagram_id, name) - name_parts = split_first_and_last_name(name) + name_parts = parse_name(name) first_name = name_parts[:first_name] last_name = name_parts[:last_name] + middle_name = name_parts[:middle_name] @contact_inbox = ::ContactInboxWithContactBuilder.new({ source_id: instagram_id, inbox: inbox, - contact_attributes: { name: first_name, last_name: last_name } + contact_attributes: { name: first_name, last_name: last_name, middle_name: middle_name } }).perform end diff --git a/app/services/whatsapp/incoming_message_base_service.rb b/app/services/whatsapp/incoming_message_base_service.rb index 4bc8d3ee4..73697d313 100644 --- a/app/services/whatsapp/incoming_message_base_service.rb +++ b/app/services/whatsapp/incoming_message_base_service.rb @@ -85,14 +85,16 @@ class Whatsapp::IncomingMessageBaseService waid = processed_waid(contact_params[:wa_id]) name = contact_params.dig(:profile, :name) - name_parts = split_first_and_last_name(name) + name_parts = parse_name(name) first_name = name_parts[:first_name] + middle_name = name_parts[:middle_name] last_name = name_parts[:last_name] contact_inbox = ::ContactInboxWithContactBuilder.new( source_id: waid, inbox: inbox, - contact_attributes: { name: first_name, last_name: last_name, phone_number: "+#{@processed_params[:messages].first[:from]}" } + contact_attributes: { name: first_name, last_name: last_name, middle_name: middle_name, + phone_number: "+#{@processed_params[:messages].first[:from]}" } ).perform @contact_inbox = contact_inbox