feat(conversations): add message creation limit lock

This commit is contained in:
Sony Mathew
2026-07-02 00:28:31 +05:30
parent 926a9d8a69
commit 48e7985b0f
73 changed files with 1691 additions and 58 deletions
@@ -9,6 +9,8 @@ class Api::V1::Accounts::Conversations::MessagesController < Api::V1::Accounts::
user = Current.user || @resource
mb = Messages::MessageBuilder.new(user, @conversation, params)
@message = mb.perform
rescue CustomExceptions::ConversationMessageCreationLocked => e
render_error_response(e)
rescue StandardError => e
render_could_not_create_error(e.message)
end
@@ -27,11 +29,14 @@ class Api::V1::Accounts::Conversations::MessagesController < Api::V1::Accounts::
def retry
return if message.blank?
raise CustomExceptions::ConversationMessageCreationLocked, @conversation if @conversation.message_creation_locked?
service = Messages::StatusUpdateService.new(message, 'sent')
service.perform
message.update!(content_attributes: {})
::SendReplyJob.perform_later(message.id)
rescue CustomExceptions::ConversationMessageCreationLocked => e
render_error_response(e)
rescue StandardError => e
render_could_not_create_error(e.message)
end
@@ -9,6 +9,9 @@ class Api::V1::WebhooksController < ApplicationController
def twitter_events
twitter_consumer.consume
head :ok
rescue CustomExceptions::ConversationMessageCreationLocked => e
Rails.logger.info("Skipping Twitter webhook because message creation is locked (#{e.message})")
head :ok
rescue StandardError => e
ChatwootExceptionTracker.new(e).capture_exception
head :ok