diff --git a/app/controllers/public/api/v1/inboxes/conversations_controller.rb b/app/controllers/public/api/v1/inboxes/conversations_controller.rb index c79952372..1e20b2a1d 100644 --- a/app/controllers/public/api/v1/inboxes/conversations_controller.rb +++ b/app/controllers/public/api/v1/inboxes/conversations_controller.rb @@ -23,6 +23,7 @@ class Public::Api::V1::Inboxes::ConversationsController < Public::Api::V1::Inbox def update_last_seen @conversation.contact_last_seen_at = DateTime.now.utc @conversation.save! + ::Conversations::MarkMessagesAsReadJob.perform_later(@conversation) head :ok end diff --git a/app/javascript/dashboard/components/widgets/conversation/bubble/Actions.vue b/app/javascript/dashboard/components/widgets/conversation/bubble/Actions.vue index e03cc74ed..f3c7e4f3c 100644 --- a/app/javascript/dashboard/components/widgets/conversation/bubble/Actions.vue +++ b/app/javascript/dashboard/components/widgets/conversation/bubble/Actions.vue @@ -214,8 +214,8 @@ export default { if (this.isAWhatsAppChannel || this.isATwilioChannel) { return this.sourceId && this.isDelivered; } - // We will consider messages as delivered for web widget inbox if they are sent - if (this.isAWebWidgetInbox) { + // We will consider messages as delivered for web widget inbox and API inbox if they are sent + if (this.isAWebWidgetInbox || this.isAPIInbox) { return this.isSent; } diff --git a/spec/controllers/public/api/v1/inbox/conversations_controller_spec.rb b/spec/controllers/public/api/v1/inbox/conversations_controller_spec.rb index 0bd8cbfd0..3001263bf 100644 --- a/spec/controllers/public/api/v1/inbox/conversations_controller_spec.rb +++ b/spec/controllers/public/api/v1/inbox/conversations_controller_spec.rb @@ -81,6 +81,7 @@ RSpec.describe 'Public Inbox Contact Conversations API', type: :request do it 'updates the last seen of the conversation contact' do contact_last_seen_at = conversation.contact_last_seen_at + expect(Conversations::MarkMessagesAsReadJob).to receive(:perform_later).with(conversation) post update_last_seen_path expect(response).to have_http_status(:success)