diff --git a/app/controllers/api/v1/accounts/inboxes_controller.rb b/app/controllers/api/v1/accounts/inboxes_controller.rb index 011faaf28..61d16b2ca 100644 --- a/app/controllers/api/v1/accounts/inboxes_controller.rb +++ b/app/controllers/api/v1/accounts/inboxes_controller.rb @@ -42,7 +42,9 @@ class Api::V1::Accounts::InboxesController < Api::V1::Accounts::BaseController end def update - @inbox.update!(permitted_params.except(:channel)) + inbox_params = permitted_params.except(:channel, :csat_config) + inbox_params[:csat_config] = format_csat_config(permitted_params[:csat_config]) if permitted_params[:csat_config].present? + @inbox.update!(inbox_params) update_inbox_working_hours update_channel if channel_update_required? end @@ -121,10 +123,22 @@ class Api::V1::Accounts::InboxesController < Api::V1::Accounts::BaseController @inbox.channel.save! end + def format_csat_config(config) + { + display_type: config['display_type'] || 'emoji', + message: config['message'] || '', + survey_rules: { + operator: config.dig('survey_rules', 'operator') || 'contains', + values: config.dig('survey_rules', 'values') || [] + } + } + end + def inbox_attributes [:name, :avatar, :greeting_enabled, :greeting_message, :enable_email_collect, :csat_survey_enabled, :enable_auto_assignment, :working_hours_enabled, :out_of_office_message, :timezone, :allow_messages_after_resolved, - :lock_to_single_conversation, :portal_id, :sender_name_type, :business_name] + :lock_to_single_conversation, :portal_id, :sender_name_type, :business_name, + { csat_config: [:display_type, :message, { survey_rules: [:operator, { values: [] }] }] }] end def permitted_params(channel_attributes = []) diff --git a/app/controllers/twilio/callback_controller.rb b/app/controllers/twilio/callback_controller.rb index ff5db952d..ff16e9386 100644 --- a/app/controllers/twilio/callback_controller.rb +++ b/app/controllers/twilio/callback_controller.rb @@ -24,9 +24,10 @@ class Twilio::CallbackController < ApplicationController :Body, :ToCountry, :FromState, - :MediaUrl0, - :MediaContentType0, - :MessagingServiceSid + *Array.new(10) { |i| :"MediaUrl#{i}" }, + *Array.new(10) { |i| :"MediaContentType#{i}" }, + :MessagingServiceSid, + :NumMedia ) end end diff --git a/app/javascript/dashboard/components-next/dropdown-menu/DropdownMenu.vue b/app/javascript/dashboard/components-next/dropdown-menu/DropdownMenu.vue index c8e69b049..111b9868e 100644 --- a/app/javascript/dashboard/components-next/dropdown-menu/DropdownMenu.vue +++ b/app/javascript/dashboard/components-next/dropdown-menu/DropdownMenu.vue @@ -81,6 +81,7 @@ onMounted(() => {