docbrown/app/services/badges/award.rb
Daniel Uber 0a47910e30
Skip badge awards for spam accounts (#15344)
* Don't award badges to banished users

* Assert badges aren't created for spam accounts
2021-11-10 10:48:01 -06:00

17 lines
446 B
Ruby

module Badges
class Award
def self.call(user_relation, slug, message_markdown)
return unless (badge_id = Badge.id_for_slug(slug))
user_relation.find_each do |user|
next if user.banished?
achievement = user.badge_achievements.create(
badge_id: badge_id,
rewarding_context_message_markdown: message_markdown,
)
user.touch if achievement.persisted?
end
end
end
end