revert: "fix: message_type inconsistency across message end points" (#10119)

Reverts chatwoot/chatwoot#10108
This commit is contained in:
Muhsin Keloth
2024-09-16 20:00:11 +05:30
committed by GitHub
parent 05b8486538
commit 5d52e4e0a6
13 changed files with 22 additions and 40 deletions

View File

@@ -137,7 +137,7 @@ class Message < ApplicationRecord
def push_event_data
data = attributes.symbolize_keys.merge(
created_at: created_at.to_i,
message_type: message_type.to_i,
message_type: message_type_before_type_cast,
conversation_id: conversation.display_id,
conversation: conversation_push_event_data
)

View File

@@ -1,6 +1,6 @@
json.id message.id
json.content message.content
json.message_type message.message_type.to_i
json.message_type message.message_type_before_type_cast
json.content_type message.content_type
json.source_id message.source_id
json.inbox_id message.inbox_id

View File

@@ -17,7 +17,7 @@ json.messages do
json.content message.content
json.id message.id
json.sender_name message.sender.name if message.sender
json.message_type message.message_type.to_i
json.message_type message.message_type_before_type_cast
json.created_at message.created_at.to_i
end
end

View File

@@ -3,7 +3,7 @@ json.content message.content
json.inbox_id message.inbox_id
json.echo_id message.echo_id if message.echo_id
json.conversation_id message.conversation.display_id
json.message_type message.message_type.to_i
json.message_type message.message_type_before_type_cast
json.content_type message.content_type
json.status message.status
json.content_attributes message.content_attributes

View File

@@ -1,6 +1,6 @@
json.id resource.id
json.content resource.content
json.message_type resource.message_type.to_i
json.message_type resource.message_type_before_type_cast
json.content_type resource.content_type
json.content_attributes resource.content_attributes
json.created_at resource.created_at.to_i

View File

@@ -2,7 +2,7 @@ json.id @message.id
json.content @message.content
json.inbox_id @message.inbox_id
json.conversation_id @message.conversation.display_id
json.message_type @message.message_type.to_i
json.message_type @message.message_type_before_type_cast
json.created_at @message.created_at.to_i
json.private @message.private
json.source_id @message.source_id

View File

@@ -2,7 +2,7 @@ json.payload do
json.array! @messages do |message|
json.id message.id
json.content message.content
json.message_type message.message_type.to_i
json.message_type message.message_type_before_type_cast
json.content_type message.content_type
json.content_attributes message.content_attributes
json.created_at message.created_at.to_i

View File

@@ -1,6 +1,6 @@
json.id resource.id
json.content resource.content
json.message_type resource.message_type.to_i
json.message_type resource.message_type_before_type_cast
json.content_type resource.content_type
json.content_attributes resource.content_attributes
json.created_at resource.created_at.to_i

View File

@@ -112,7 +112,6 @@ RSpec.describe 'Search', type: :request do
expect(response_data[:payload].keys).to contain_exactly(:messages)
expect(response_data[:payload][:messages].length).to eq 2
expect(response_data[:payload][:messages].first[:message_type]).to eq 0
end
end
end

View File

@@ -13,21 +13,6 @@ RSpec.describe '/api/v1/widget/conversations/toggle_typing', type: :request do
Widget::TokenService.new(payload: { source_id: second_session.source_id, inbox_id: web_widget.inbox.id }).generate_token
end
def conversation_params
{
website_token: web_widget.website_token,
contact: {
name: 'contact-name',
email: 'contact-email@chatwoot.com',
phone_number: '+919745313456'
},
message: {
content: 'This is a test message'
},
custom_attributes: { order_id: '12345' }
}
end
describe 'GET /api/v1/widget/conversations' do
context 'with a conversation' do
it 'returns the correct conversation params' do
@@ -62,10 +47,21 @@ RSpec.describe '/api/v1/widget/conversations/toggle_typing', type: :request do
end
describe 'POST /api/v1/widget/conversations' do
it 'creates a conversation with correct details' do
it 'creates a conversation' do
post '/api/v1/widget/conversations',
headers: { 'X-Auth-Token' => token },
params: conversation_params,
params: {
website_token: web_widget.website_token,
contact: {
name: 'contact-name',
email: 'contact-email@chatwoot.com',
phone_number: '+919745313456'
},
message: {
content: 'This is a test message'
},
custom_attributes: { order_id: '12345' }
},
as: :json
expect(response).to have_http_status(:success)
@@ -74,19 +70,8 @@ RSpec.describe '/api/v1/widget/conversations/toggle_typing', type: :request do
expect(json_response['contact']['email']).to eq 'contact-email@chatwoot.com'
expect(json_response['contact']['phone_number']).to eq '+919745313456'
expect(json_response['contact']['name']).to eq 'contact-name'
end
it 'creates a conversation with correct message and custom attributes' do
post '/api/v1/widget/conversations',
headers: { 'X-Auth-Token' => token },
params: conversation_params,
as: :json
expect(response).to have_http_status(:success)
json_response = response.parsed_body
expect(json_response['custom_attributes']['order_id']).to eq '12345'
expect(json_response['messages'][0]['content']).to eq 'This is a test message'
expect(json_response['messages'][0]['message_type']).to eq 0
end
it 'create a conversation with a name and without an email' do

View File

@@ -54,7 +54,6 @@ RSpec.describe '/api/v1/widget/messages', type: :request do
expect(response).to have_http_status(:success)
json_response = response.parsed_body
expect(json_response['content']).to eq(message_params[:content])
expect(json_response['message_type']).to eq 0
end
it 'does not create the message' do

View File

@@ -26,7 +26,6 @@ RSpec.describe 'Public Inbox Contact Conversation Messages API', type: :request
expect(response).to have_http_status(:success)
data = response.parsed_body
expect(data['content']).to eq('hello')
expect(data['message_type']).to eq(0)
end
it 'does not create the message' do

View File

@@ -79,7 +79,7 @@ RSpec.describe Message do
external_source_ids: message.external_source_ids,
id: message.id,
inbox_id: message.inbox_id,
message_type: message.message_type.to_i,
message_type: message.message_type_before_type_cast,
private: message.private,
processed_message_content: message.processed_message_content,
sender_id: message.sender_id,