module Gamification::Concerns::Controllers::RewardsController

Public Instance Methods

create() click to toggle source
# File lib/gamification/concerns/controllers/rewards_controller.rb, line 8
def create
  if rewarding.is_a? ::Gamification::Goal
    rewarding.complete_for rewardable
  else
    rewarding.goals.each do |goal|
      goal.complete_for rewardable
    end
  end

  respond_to do |format|
    format.json { render json: {}, status: :created }
    format.html { redirect_to redirect_url }
  end
end

Private Instance Methods

redirect_url() click to toggle source
# File lib/gamification/concerns/controllers/rewards_controller.rb, line 30
def redirect_url
  params[:redirect_url] || request.env['HTTP_REFERER']
end
reward_params() click to toggle source
# File lib/gamification/concerns/controllers/rewards_controller.rb, line 50
def reward_params
  params.require(:reward).permit(:rewarding_type, :rewarding_id, :rewardable_type, :rewardable_id)
end
rewardable() click to toggle source
# File lib/gamification/concerns/controllers/rewards_controller.rb, line 38
def rewardable
  rewardable_model.find reward_params[:rewardable_id]
end
rewardable_model() click to toggle source
# File lib/gamification/concerns/controllers/rewards_controller.rb, line 46
def rewardable_model
  reward_params[:rewardable_type].constantize
end
rewarding() click to toggle source
# File lib/gamification/concerns/controllers/rewards_controller.rb, line 34
def rewarding
  rewarding_model.find reward_params[:rewarding_id]
end
rewarding_model() click to toggle source
# File lib/gamification/concerns/controllers/rewards_controller.rb, line 42
def rewarding_model
  reward_params[:rewarding_type].constantize
end
verify_checksum() click to toggle source
# File lib/gamification/concerns/controllers/rewards_controller.rb, line 25
def verify_checksum
  render text: "Invalid checksum", status: :forbidden unless Checksum.verify(params[:checksum], 
    [rewarding.class.name, rewarding.id, rewardable.class.name, rewardable.id])
end