Sha256: b742b27dd35962942a2490528c8cc3da207a5c9a527b8f8777cda99dd54d2a9c

Contents?: true

Size: 502 Bytes

Versions: 25

Compression:

Stored size: 502 Bytes

Contents

module Nuntius
  class PurgeMessageJob < ApplicationJob
    def perform(account_id, months)
      messages = Nuntius::Message.distinct.select(:id).where("metadata ->> 'account_id' = :account", account: account_id)
        .where(created_at: ..months.months.ago.beginning_of_day)
        .where.not(status: %w[complaint bounced])

      Nuntius::Message.where(parent_message_id: messages.pluck(:id)).in_batches.update_all(parent_message_id: nil)

      messages.in_batches.destroy_all
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
nuntius-1.3.19 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.18 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.17 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.16 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.15 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.14 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.13 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.12 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.11 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.10 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.9 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.8 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.7 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.6 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.5 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.4 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.3 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.2 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.1 app/jobs/nuntius/purge_message_job.rb
nuntius-1.3.0 app/jobs/nuntius/purge_message_job.rb