jcraigk/kudochest

View on GitHub
app/controllers/bonuses_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
class BonusesController < ApplicationController
  before_action :ensure_manager!
  before_action :fetch_current_team

  def index; end

  def create
    BonusCalculatorWorker.perform_async(worker_args.to_json)
    redirect_to bonuses_path, notice: t('bonuses.calculation_requested', email: current_user.email)
  end

  private

  def worker_args
    {
      team_id: current_team.id,
      start_date: params[:start_date],
      end_date: params[:end_date],
      include_streak_points: params[:include_streak_points],
      include_imported_points: params[:include_imported_points],
      style: params[:style],
      pot_size: params[:pot_size],
      dollar_per_point: params[:dollar_per_point]
    }
  end

  def ensure_manager!
    redirect_to dashboard_path unless current_user.owned_teams.any?
  end
end