docbrown/app/workers/reactions/create_worker.rb
Lucas Hiago fb5cb7005c Change CreateJob to CreateWorker and move to sidekiq (#5559)
* Create new CreateWorker

* Create new spec for CreateWorker

* Change CreateJob to CreateWorker and move to sidekiq

* Update worker

* Update priority of Reactions Create Worker

* Remove leading spaces from spec
2020-01-20 11:29:13 -05:00

22 lines
530 B
Ruby

module Reactions
class CreateWorker
include Sidekiq::Worker
sidekiq_options queue: :high_priority, retry: 10
def perform(user_id, reactable_id, reactable_type, category)
return unless %w[Article Comment].include?(reactable_type)
user = User.find_by(id: user_id)
reactable = reactable_type.constantize.find_by(id: reactable_id)
return unless user && reactable
Reaction.create!(
user: user,
reactable: reactable,
category: category,
)
end
end
end