diff --git a/app/controllers/api/v1/widget/base_controller.rb b/app/controllers/api/v1/widget/base_controller.rb index 67132869d..646d70acf 100644 --- a/app/controllers/api/v1/widget/base_controller.rb +++ b/app/controllers/api/v1/widget/base_controller.rb @@ -71,7 +71,7 @@ class Api::V1::Widget::BaseController < ApplicationController end def contact_email - permitted_params[:contact][:email].downcase if permitted_params[:contact].present? + permitted_params.dig(:contact, :email)&.downcase end def contact_name @@ -79,7 +79,7 @@ class Api::V1::Widget::BaseController < ApplicationController end def contact_phone_number - params[:contact][:phone_number] + permitted_params.dig(:contact, :phone_number) end def browser_params diff --git a/app/controllers/api/v1/widget/conversations_controller.rb b/app/controllers/api/v1/widget/conversations_controller.rb index ef2422bef..cfe107ac6 100644 --- a/app/controllers/api/v1/widget/conversations_controller.rb +++ b/app/controllers/api/v1/widget/conversations_controller.rb @@ -69,7 +69,8 @@ class Api::V1::Widget::ConversationsController < Api::V1::Widget::BaseController end def permitted_params - params.permit(:id, :typing_status, :website_token, :email, contact: [:name, :email], message: [:content, :referer_url, :timestamp, :echo_id], + params.permit(:id, :typing_status, :website_token, :email, contact: [:name, :email, :phone_number], + message: [:content, :referer_url, :timestamp, :echo_id], custom_attributes: {}) end end diff --git a/app/services/message_templates/hook_execution_service.rb b/app/services/message_templates/hook_execution_service.rb index bed23b2f8..5bffb881b 100644 --- a/app/services/message_templates/hook_execution_service.rb +++ b/app/services/message_templates/hook_execution_service.rb @@ -46,7 +46,7 @@ class MessageTemplates::HookExecutionService # TODO: we should be able to reduce this logic once we have a toggle for email collect messages def should_send_email_collect? - !contact_has_email? && inbox.web_widget? && !inbox.channel.pre_chat_form_enabled? && !email_collect_was_sent? + !contact_has_email? && inbox.web_widget? && !email_collect_was_sent? end def contact_has_email? diff --git a/spec/controllers/api/v1/widget/messages_controller_spec.rb b/spec/controllers/api/v1/widget/messages_controller_spec.rb index 208327c74..fe6dd19e4 100644 --- a/spec/controllers/api/v1/widget/messages_controller_spec.rb +++ b/spec/controllers/api/v1/widget/messages_controller_spec.rb @@ -150,7 +150,7 @@ RSpec.describe '/api/v1/widget/messages', type: :request do headers: { 'X-Auth-Token' => token }, as: :json - expect(response).to have_http_status(:internal_server_error) + expect(response).to have_http_status(:success) end end diff --git a/spec/services/message_templates/hook_execution_service_spec.rb b/spec/services/message_templates/hook_execution_service_spec.rb index a71a393e5..b8255d903 100644 --- a/spec/services/message_templates/hook_execution_service_spec.rb +++ b/spec/services/message_templates/hook_execution_service_spec.rb @@ -62,20 +62,6 @@ describe ::MessageTemplates::HookExecutionService do expect(email_collect_service).to have_received(:perform) end - it 'doesnot calls ::MessageTemplates::Template::EmailCollect when prechat form is enabled' do - contact = create(:contact, email: nil) - conversation = create(:conversation, contact: contact) - - # ensure prechat form is enabled - conversation.inbox.channel.update(pre_chat_form_enabled: true) - allow(::MessageTemplates::Template::EmailCollect).to receive(:new).and_return(true) - - # described class gets called in message after commit - message = create(:message, conversation: conversation) - - expect(::MessageTemplates::Template::EmailCollect).not_to have_received(:new).with(conversation: message.conversation) - end - it 'doesnot calls ::MessageTemplates::Template::EmailCollect on campaign conversations' do contact = create(:contact, email: nil) conversation = create(:conversation, contact: contact, campaign: create(:campaign))