discourse-subscriptions/app/services/discourse_donations/rewards.rb

32 lines
617 B
Ruby

module DiscourseDonations
class Rewards
attr_reader :user
def initialize(user)
@user = user
end
def add_to_group(name)
grp = ::Group.find_by_name(name)
return if grp.nil?
log_group_add(grp)
grp.add(user)
end
def grant_badge(name)
return unless SiteSetting.enable_badges
badge = ::Badge.find_by_name(name)
return if badge.nil?
BadgeGranter.grant(badge, user)
end
private
def log_group_add(grp)
system_user = User.find(-1)
GroupActionLogger.new(system_user, grp).log_add_user_to_group(user)
end
end
end