From 5d52e4e0a6dccba64963e3c956be378f4420179b Mon Sep 17 00:00:00 2001 From: Muhsin Keloth Date: Mon, 16 Sep 2024 20:00:11 +0530 Subject: [PATCH] revert: "fix: `message_type` inconsistency across message end points" (#10119) Reverts chatwoot/chatwoot#10108 --- app/models/message.rb | 2 +- .../v1/accounts/search/_message.json.jbuilder | 2 +- .../api/v1/models/_conversation.json.jbuilder | 2 +- .../api/v1/models/_message.json.jbuilder | 2 +- .../v1/models/_widget_message.json.jbuilder | 2 +- .../v1/widget/messages/create.json.jbuilder | 2 +- .../v1/widget/messages/index.json.jbuilder | 2 +- .../api/v1/models/_message.json.jbuilder | 2 +- .../api/v1/accounts/search_controller_spec.rb | 1 - .../widget/conversations_controller_spec.rb | 41 ++++++------------- .../api/v1/widget/messages_controller_spec.rb | 1 - .../api/v1/inbox/messages_controller_spec.rb | 1 - spec/models/message_spec.rb | 2 +- 13 files changed, 22 insertions(+), 40 deletions(-) diff --git a/app/models/message.rb b/app/models/message.rb index 836fc7de52d45..6244d050ca532 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -137,7 +137,7 @@ def channel_token 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 ) diff --git a/app/views/api/v1/accounts/search/_message.json.jbuilder b/app/views/api/v1/accounts/search/_message.json.jbuilder index d9416cce0204f..98ac728d66104 100644 --- a/app/views/api/v1/accounts/search/_message.json.jbuilder +++ b/app/views/api/v1/accounts/search/_message.json.jbuilder @@ -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 diff --git a/app/views/api/v1/models/_conversation.json.jbuilder b/app/views/api/v1/models/_conversation.json.jbuilder index dc83432285102..68dfd2c407230 100644 --- a/app/views/api/v1/models/_conversation.json.jbuilder +++ b/app/views/api/v1/models/_conversation.json.jbuilder @@ -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 diff --git a/app/views/api/v1/models/_message.json.jbuilder b/app/views/api/v1/models/_message.json.jbuilder index 87dc9297d5a0d..583bc6fa6f3af 100644 --- a/app/views/api/v1/models/_message.json.jbuilder +++ b/app/views/api/v1/models/_message.json.jbuilder @@ -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 diff --git a/app/views/api/v1/models/_widget_message.json.jbuilder b/app/views/api/v1/models/_widget_message.json.jbuilder index 36ce34decfb87..8aa42aba3947d 100644 --- a/app/views/api/v1/models/_widget_message.json.jbuilder +++ b/app/views/api/v1/models/_widget_message.json.jbuilder @@ -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 diff --git a/app/views/api/v1/widget/messages/create.json.jbuilder b/app/views/api/v1/widget/messages/create.json.jbuilder index 81d4cd771131c..fbd6ab5e5fc55 100644 --- a/app/views/api/v1/widget/messages/create.json.jbuilder +++ b/app/views/api/v1/widget/messages/create.json.jbuilder @@ -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 diff --git a/app/views/api/v1/widget/messages/index.json.jbuilder b/app/views/api/v1/widget/messages/index.json.jbuilder index f178a09902099..29e80815ded12 100644 --- a/app/views/api/v1/widget/messages/index.json.jbuilder +++ b/app/views/api/v1/widget/messages/index.json.jbuilder @@ -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 diff --git a/app/views/public/api/v1/models/_message.json.jbuilder b/app/views/public/api/v1/models/_message.json.jbuilder index 36ce34decfb87..8aa42aba3947d 100644 --- a/app/views/public/api/v1/models/_message.json.jbuilder +++ b/app/views/public/api/v1/models/_message.json.jbuilder @@ -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 diff --git a/spec/controllers/api/v1/accounts/search_controller_spec.rb b/spec/controllers/api/v1/accounts/search_controller_spec.rb index 894c4e788e041..b5644cebf0ad2 100644 --- a/spec/controllers/api/v1/accounts/search_controller_spec.rb +++ b/spec/controllers/api/v1/accounts/search_controller_spec.rb @@ -112,7 +112,6 @@ 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 diff --git a/spec/controllers/api/v1/widget/conversations_controller_spec.rb b/spec/controllers/api/v1/widget/conversations_controller_spec.rb index 6966c87ea5909..e4f5a4bdefbd1 100644 --- a/spec/controllers/api/v1/widget/conversations_controller_spec.rb +++ b/spec/controllers/api/v1/widget/conversations_controller_spec.rb @@ -13,21 +13,6 @@ 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 @@ def conversation_params 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 @@ def conversation_params 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 diff --git a/spec/controllers/api/v1/widget/messages_controller_spec.rb b/spec/controllers/api/v1/widget/messages_controller_spec.rb index 2174a1a5349f5..11c916514d539 100644 --- a/spec/controllers/api/v1/widget/messages_controller_spec.rb +++ b/spec/controllers/api/v1/widget/messages_controller_spec.rb @@ -54,7 +54,6 @@ 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 diff --git a/spec/controllers/public/api/v1/inbox/messages_controller_spec.rb b/spec/controllers/public/api/v1/inbox/messages_controller_spec.rb index 3dd43e3bd3da7..a7e055b19c994 100644 --- a/spec/controllers/public/api/v1/inbox/messages_controller_spec.rb +++ b/spec/controllers/public/api/v1/inbox/messages_controller_spec.rb @@ -26,7 +26,6 @@ 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 diff --git a/spec/models/message_spec.rb b/spec/models/message_spec.rb index 3300254d5fa19..4c66e37ee6421 100644 --- a/spec/models/message_spec.rb +++ b/spec/models/message_spec.rb @@ -79,7 +79,7 @@ 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,