From fba73c7186cd290b2da39706aa71e650a04dc3ef Mon Sep 17 00:00:00 2001 From: Sojan Jose Date: Mon, 16 Sep 2024 21:05:39 -0700 Subject: [PATCH] chore: Fix issue with deleting interactive messages (#10123) - fix issue with deleting interactive messages --- .../accounts/conversations/messages_controller.rb | 2 +- .../conversations/messages_controller_spec.rb | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/controllers/api/v1/accounts/conversations/messages_controller.rb b/app/controllers/api/v1/accounts/conversations/messages_controller.rb index d34561e36..63226f342 100644 --- a/app/controllers/api/v1/accounts/conversations/messages_controller.rb +++ b/app/controllers/api/v1/accounts/conversations/messages_controller.rb @@ -13,7 +13,7 @@ class Api::V1::Accounts::Conversations::MessagesController < Api::V1::Accounts:: def destroy ActiveRecord::Base.transaction do - message.update!(content: I18n.t('conversations.messages.deleted'), content_attributes: { deleted: true }) + message.update!(content: I18n.t('conversations.messages.deleted'), content_type: :text, content_attributes: { deleted: true }) message.attachments.destroy_all end end diff --git a/spec/controllers/api/v1/accounts/conversations/messages_controller_spec.rb b/spec/controllers/api/v1/accounts/conversations/messages_controller_spec.rb index 8f7a5fea0..94d4cf272 100644 --- a/spec/controllers/api/v1/accounts/conversations/messages_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/conversations/messages_controller_spec.rb @@ -216,6 +216,21 @@ RSpec.describe 'Conversation Messages API', type: :request do expect(message.reload.deleted).to be true expect(message.reload.content_attributes['bcc_emails']).to be_nil end + + it 'deletes interactive messages' do + interactive_message = create( + :message, message_type: :outgoing, content: 'test', content_type: 'input_select', + content_attributes: { 'items' => [{ 'title' => 'test', 'value' => 'test' }] }, + conversation: conversation + ) + + delete "/api/v1/accounts/#{account.id}/conversations/#{conversation.display_id}/messages/#{interactive_message.id}", + headers: agent.create_new_auth_token, + as: :json + + expect(response).to have_http_status(:success) + expect(interactive_message.reload.deleted).to be true + end end context 'when the message id is invalid' do