docbrown/app/workers/users/follow_worker.rb
2020-01-08 15:03:18 -05:00

17 lines
448 B
Ruby

module Users
class FollowWorker
include Sidekiq::Worker
sidekiq_options queue: :high_priority, retry: 10
def perform(user_id, followable_id, followable_type)
return unless %w[Tag Organization User].include?(followable_type)
user = User.find_by(id: user_id)
followable = followable_type.constantize.find_by(id: followable_id)
return unless user && followable
user.follow(followable)
end
end
end