1
0
mirror of synced 2026-08-03 21:56:54 +00:00

initial empty job

This commit is contained in:
Rimian Perkins
2017-04-27 13:34:48 +10:00
parent cfe04fd4e3
commit 45501a0ca3
4 changed files with 32 additions and 15 deletions
@@ -1,4 +1,5 @@
require_dependency 'discourse'
require_relative '../../jobs/award_group'
module DiscourseDonations
class ChargesController < ActionController::Base
@@ -16,7 +17,7 @@ module DiscourseDonations
response['rewards'] = []
if reward_user?(payment)
if reward_current_user?(payment)
reward = DiscourseDonations::Rewards.new(current_user)
if reward.add_to_group(group_name)
response['rewards'] << { type: :group, name: group_name }
@@ -24,6 +25,10 @@ module DiscourseDonations
if reward.grant_badge(badge_name)
response['rewards'] << { type: :badge, name: badge_name }
end
else
if group_name.present?
Jobs.enqueue_in(1.minute, :award_group, email: email)
end
end
render :json => response
@@ -31,8 +36,8 @@ module DiscourseDonations
private
def reward_user?(payment)
payment.present? && payment.successful?
def reward_current_user?(payment)
current_user.present? && payment.present? && payment.successful?
end
def group_name
+9
View File
@@ -0,0 +1,9 @@
# Discourse forces the namespace at top level :(
module Jobs
class AwardGroup
def perform(args)
puts '======================The Job was performed==========================='
end
end
end
@@ -1,5 +1,4 @@
module DiscourseDonations
class Rewards
attr_reader :user
@@ -40,21 +40,21 @@ module DiscourseDonations
Fabricate(:badge, name: badge_name)
end
shared_examples 'it has no rewards' do
it 'rewards are empty' do
stripe.expects(:create).returns({ outcome: { seller_message: 'bummer' } })
post :create
expect(response_rewards).to be_empty
end
end
describe 'new user' do
let(:params) { { email: 'new-user@example.com' } }
it_behaves_like 'it has no rewards'
it 'has no rewards' do
post :create
expect(response_rewards).to be_empty
end
it 'awards a group'
it 'awards a badge'
it 'enqueues add to group' do
Jobs.expects(:enqueue_in).with(1.minute, :award_group, email: params[:email])
post :create, params
end
it 'enqueues awarding a badge'
end
describe 'logged in user' do
@@ -62,7 +62,11 @@ module DiscourseDonations
log_in :coding_horror
end
it_behaves_like 'it has no rewards'
it 'has no rewards' do
stripe.expects(:create).returns({ outcome: { seller_message: 'bummer' } })
post :create
expect(response_rewards).to be_empty
end
it 'awards a group' do
post :create