discourse/app/jobs/regular/bulk_user_title_update.rb

30 lines
628 B
Ruby

# frozen_string_literal: true
module Jobs
class BulkUserTitleUpdate < ::Jobs::Base
UPDATE_ACTION = "update"
RESET_ACTION = "reset"
def execute(args)
new_title = args[:new_title]
granted_badge_id = args[:granted_badge_id]
action = args[:action]
badge =
begin
Badge.find(granted_badge_id)
rescue StandardError
nil
end
return unless badge # Deleted badge protection
case action
when UPDATE_ACTION
badge.update_user_titles!(new_title)
when RESET_ACTION
badge.reset_user_titles!
end
end
end
end