Sha256: 5ffe15a1d68fd6c627363af82627ae438251938b8e953931250e0de708b9dfae

Contents?: true

Size: 1.5 KB

Versions: 1

Compression:

Stored size: 1.5 KB

Contents

class CatarseIugu::IuguController < ApplicationController
  layout false

  def review
    contribution
  end

  def pay
    begin
      payment.save!
      charge = Iugu::Charge.create(
        "token" => params[:token],
        "email" => contribution.payer_email,
        "items" => [
          {
            "description" => contribution.project.name,
            "quantity" => "1",
            "price_cents" => contribution.price_in_cents
          }
        ]
      )

      if charge.success
        flash[:notice] = "ContribuiĆ§Ć£o feita com sucesso!"
        payment.pay!
        PaymentEngines.create_payment_notification contribution_id: contribution.id, payment_id: payment.id
        redirect_to main_app.project_contribution_path(contribution.project, contribution)
      else
        flash[:notice] = "Houve um erro ao realizar o pagamento: #{charge.message}"
        redirect_to main_app.new_project_contribution_path(contribution.project)
      end
    rescue Exception => e
      Rails.logger.info "-----> #{e.inspect}"
      flash[:notice] = "Houve um erro ao realizar o pagamento: #{e.message}"
      return redirect_to main_app.new_project_contribution_path(contribution.project)
    end
  end

  private

    def contribution
      @contribution ||= PaymentEngines.find_contribution(params[:id])
    end

    def payment
      @payment ||= PaymentEngines.new_payment(
        contribution: contribution,
        value: contribution.value,
        gateway: "Iugu",
        payment_method: 'Iugu'
      )
    end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
catarse_iugu-0.1.3 app/controllers/catarse_iugu/iugu_controller.rb