Sha256: 142cd2695110a4a7c170ae5d0dd8df17e70df855ac3eab42aeb5fd76ffbe4b6c

Contents?: true

Size: 769 Bytes

Versions: 18

Compression:

Stored size: 769 Bytes

Contents

module Workarea
  class SynchronizeUserMetrics
    include Sidekiq::Worker
    include Sidekiq::CallbacksWorker

    sidekiq_options(
      enqueue_on: { User => :save, only_if: -> { admin_changed? || tags_changed? } },
      queue: 'low'
    )

    # It's essential for the {Metrics::User#admin} field always be in sync, so
    # we always want this worker enabled.
    #
    # @return [Boolean]
    #
    def self.enabled?
      true
    end

    def perform(id)
      user = User.find(id)

      Metrics::User.collection.update_one(
        { _id: user.email },
        {
          '$set' => {
            admin: user.admin?,
            tags: user.tags,
            updated_at: Time.current.utc
          }
        },
        upsert: true
      )
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
workarea-core-3.5.27 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.26 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.25 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.23 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.22 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.21 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.20 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.19 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.18 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.17 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.16 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.15 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.14 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.13 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.12 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.11 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.10 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.9 app/workers/workarea/synchronize_user_metrics.rb