joatuapp/joatu-v2

View on GitHub
app/controllers/admin/caps_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
class Admin::CapsController < Admin::ApplicationController
  include MoneyRails::ActionViewExtension

  respond_to :html

  # Display the form an admin can use to generate caps:
  def new
    @users = User.all
    @organizations = Organization.all
    @form = CapsTransactionForm.new(CapsTransaction.new(source: CapsGenerator.instance))
    authorize @form.model
    respond_with(@caps_transaction = @form)
  end

  # Create new CAPs by creating a transfer from the CapsGenerator
  def create
    @form = CapsTransactionForm.new(CapsTransaction.new(source: CapsGenerator.instance))
    authorize @form.model
    if @form.validate(params[:caps_transaction])
      TransferCaps.call(@form, current_user)
      flash[:notice] = t('admin.caps.caps_awarded_successfully_message', caps: "#{humanized_money @form.caps} #{@form.caps.currency.iso_code}", recipient_name: @form.destination.name)
      redirect_to admin_generate_caps_path
    else
      @caps_transaction = @form
      render :new
    end
  end
end