mirror of
https://github.com/discourse/discourse-subscriptions.git
synced 2025-07-08 07:12:46 +00:00
remove old jobs for awards
This commit is contained in:
parent
c12cc3246a
commit
b663bf5447
@ -1,32 +0,0 @@
|
|||||||
|
|
||||||
module Jobs
|
|
||||||
class AwardGroup < ::Jobs::Scheduled
|
|
||||||
every 1.minutes
|
|
||||||
|
|
||||||
def execute(_args)
|
|
||||||
puts "===================== Running add to group ========================"
|
|
||||||
puts user_queue
|
|
||||||
user_queue.each do |email|
|
|
||||||
user = User.find_by_email(email)
|
|
||||||
next if user.nil?
|
|
||||||
puts "Added user #{user.email} to #{group_name}"
|
|
||||||
DiscourseDonations::Rewards.new(user).add_to_group(group_name)
|
|
||||||
end
|
|
||||||
user_queue_reset
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def user_queue
|
|
||||||
PluginStore.get('discourse-donations', 'group:add') || []
|
|
||||||
end
|
|
||||||
|
|
||||||
def user_queue_reset
|
|
||||||
PluginStore.set('discourse-donations', 'group:add', [])
|
|
||||||
end
|
|
||||||
|
|
||||||
def group_name
|
|
||||||
SiteSetting.discourse_donations_reward_group_name
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,32 +0,0 @@
|
|||||||
|
|
||||||
module Jobs
|
|
||||||
class GrantBadge < ::Jobs::Scheduled
|
|
||||||
every 5.minutes
|
|
||||||
|
|
||||||
def execute(_args)
|
|
||||||
puts "===================== Running badge grant ========================"
|
|
||||||
puts user_queue
|
|
||||||
user_queue.each do |email|
|
|
||||||
user = User.find_by_email(email)
|
|
||||||
next if user.nil?
|
|
||||||
puts "Granted user #{user.email} with badge: #{badge_name}"
|
|
||||||
DiscourseDonations::Rewards.new(user).grant_badge(badge_name)
|
|
||||||
end
|
|
||||||
user_queue_reset
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def user_queue
|
|
||||||
PluginStore.get('discourse-donations', 'badge:grant') || []
|
|
||||||
end
|
|
||||||
|
|
||||||
def user_queue_reset
|
|
||||||
PluginStore.set('discourse-donations', 'badge:grant', [])
|
|
||||||
end
|
|
||||||
|
|
||||||
def badge_name
|
|
||||||
SiteSetting.discourse_donations_reward_badge_name
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,4 +1 @@
|
|||||||
load File.expand_path('../award_group.rb', __FILE__)
|
|
||||||
load File.expand_path('../grant_badge.rb', __FILE__)
|
|
||||||
|
|
||||||
load File.expand_path('../regular/donation_user.rb', __FILE__)
|
load File.expand_path('../regular/donation_user.rb', __FILE__)
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
require 'rails_helper'
|
|
||||||
|
|
||||||
RSpec.describe Jobs::AwardGroup, type: :job do
|
|
||||||
let(:users) { [Fabricate(:user), Fabricate(:user)] }
|
|
||||||
let(:grp) { Fabricate(:group, name: 'chimichanga') }
|
|
||||||
|
|
||||||
before do
|
|
||||||
SiteSetting.stubs(:discourse_donations_reward_group_name).returns(grp.name)
|
|
||||||
PluginStore.set('discourse-donations', 'group:add', [users.first.email, users.last.email])
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'adds the users to the group' do
|
|
||||||
Jobs::AwardGroup.new.execute(nil)
|
|
||||||
aggregate_failures do
|
|
||||||
expect(users.first.groups).to include(grp)
|
|
||||||
expect(users.last.groups).to include(grp)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,19 +0,0 @@
|
|||||||
require 'rails_helper'
|
|
||||||
|
|
||||||
RSpec.describe Jobs::GrantBadge, type: :job do
|
|
||||||
let(:users) { [Fabricate(:user), Fabricate(:user)] }
|
|
||||||
let(:badge) { Fabricate(:badge, name: 'el-grande') }
|
|
||||||
|
|
||||||
before do
|
|
||||||
SiteSetting.stubs(:discourse_donations_reward_badge_name).returns(badge.name)
|
|
||||||
PluginStore.set('discourse-donations', 'badge:grant', [users.first.email, users.last.email])
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'grants all the users the badge' do
|
|
||||||
Jobs::GrantBadge.new.execute(nil)
|
|
||||||
aggregate_failures do
|
|
||||||
expect(users.first.badges).to include(badge)
|
|
||||||
expect(users.last.badges).to include(badge)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
Loading…
x
Reference in New Issue
Block a user