chatwoot/chatwoot

View on GitHub
app/jobs/migration/conversations_first_reply_scheduler_job.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
# Delete migration and spec after 2 consecutive releases.
class Migration::ConversationsFirstReplySchedulerJob < ApplicationJob
  queue_as :scheduled_jobs

  def perform(account)
    account.conversations.each do |conversation|
      # rubocop:disable Rails/SkipsModelValidations
      if conversation.messages.outgoing.where("(additional_attributes->'campaign_id') is null").count.positive?
        conversation.update_columns(first_reply_created_at: conversation.messages.outgoing.where("(additional_attributes->'campaign_id') is null")
        .first.created_at)
      else
        conversation.update_columns(first_reply_created_at: nil)
      end
      # rubocop:enable Rails/SkipsModelValidations
    end
  end
end