From 8c4b13b737cb30fd24b036abf6f609b8e3b24d67 Mon Sep 17 00:00:00 2001 From: Muhsin Keloth Date: Wed, 7 Feb 2024 13:33:57 +0530 Subject: [PATCH] feat: set first and last name for WhatsApp --- app/models/channel/facebook_page.rb | 7 +++++-- app/services/whatsapp/incoming_message_base_service.rb | 9 +++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/models/channel/facebook_page.rb b/app/models/channel/facebook_page.rb index 6e3986d05..6add2bf00 100644 --- a/app/models/channel/facebook_page.rb +++ b/app/models/channel/facebook_page.rb @@ -38,9 +38,12 @@ class Channel::FacebookPage < ApplicationRecord end def create_contact_inbox(instagram_id, name) - first_name = split_first_and_last_name(name)[:first_name] - last_name = split_first_and_last_name(name)[:last_name] + name_parts = split_first_and_last_name(name) + first_name = name_parts[:first_name] + last_name = name_parts[:last_name] @contact_inbox = ::ContactInboxWithContactBuilder.new({ + name: first_name, + last_name: last_name, source_id: instagram_id, inbox: inbox, contact_attributes: { name: first_name, last_name: last_name } diff --git a/app/services/whatsapp/incoming_message_base_service.rb b/app/services/whatsapp/incoming_message_base_service.rb index f057fadbd..4bc8d3ee4 100644 --- a/app/services/whatsapp/incoming_message_base_service.rb +++ b/app/services/whatsapp/incoming_message_base_service.rb @@ -3,7 +3,7 @@ # https://developers.facebook.com/docs/whatsapp/api/media/ class Whatsapp::IncomingMessageBaseService include ::Whatsapp::IncomingMessageServiceHelpers - + include ContactHelper pattr_initialize [:inbox!, :params!] def perform @@ -84,10 +84,15 @@ class Whatsapp::IncomingMessageBaseService waid = processed_waid(contact_params[:wa_id]) + name = contact_params.dig(:profile, :name) + name_parts = split_first_and_last_name(name) + first_name = name_parts[:first_name] + last_name = name_parts[:last_name] + contact_inbox = ::ContactInboxWithContactBuilder.new( source_id: waid, inbox: inbox, - contact_attributes: { name: contact_params.dig(:profile, :name), phone_number: "+#{@processed_params[:messages].first[:from]}" } + contact_attributes: { name: first_name, last_name: last_name, phone_number: "+#{@processed_params[:messages].first[:from]}" } ).perform @contact_inbox = contact_inbox