Sha256: d0c2b458b79cf540a1d8d2500044cb91d90145ffbb47010a0a5474a6e1d70702

Contents?: true

Size: 1.77 KB

Versions: 8

Compression:

Stored size: 1.77 KB

Contents

require "pagarme"

module CatarsePagarme
  class ApplicationController < ActionController::Base

    before_filter :authenticate_user!
    before_filter :configure_pagarme
    helper_method :payment
    layout :false

    protected
    def metadata_attributes
      {
        key: payment.generate_key,
        contribution_id: payment.contribution.id,
        project_name: payment.project.name,
        permalink: payment.project.permalink,
        project_online: payment.project.online_at,
        project_expires: payment.project.expires_at,
        user_total_contributions: payment.user.contributions.was_confirmed.count,
        user_id: payment.user.id
      }
    end

    def configure_pagarme
      PagarMe.api_key = CatarsePagarme.configuration.api_key
    end

    def authenticate_user!
      unless defined?(current_user) && current_user
        raise Exception.new('invalid user')
      end

      if current_user != contribution.user
        raise Exception.new('invalid user') unless current_user.admin?
      end
    end

    def permited_attrs(attributes)
      attrs = ActionController::Parameters.new(attributes)
      attrs.permit([
        slip_payment: [:payment_method, :amount, :postback_url,
                       customer: [:name, :email]
        ],
        user: [
          bank_account_attributes: [
            :name, :account, :account_digit, :agency,
            :agency_digit, :owner_name, :owner_document
          ]
        ]
      ])
    end

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

    def payment
      attributes = {contribution: contribution, value: contribution.value}
      @payment ||= PaymentEngines.new_payment(attributes)
    end

    def delegator
      payment.pagarme_delegator
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
catarse_pagarme-2.10.1 app/controllers/catarse_pagarme/application_controller.rb
catarse_pagarme-2.10.0 app/controllers/catarse_pagarme/application_controller.rb
catarse_pagarme-2.9.13 app/controllers/catarse_pagarme/application_controller.rb
catarse_pagarme-2.9.12 app/controllers/catarse_pagarme/application_controller.rb
catarse_pagarme-2.9.11 app/controllers/catarse_pagarme/application_controller.rb
catarse_pagarme-2.9.10 app/controllers/catarse_pagarme/application_controller.rb
catarse_pagarme-2.9.9 app/controllers/catarse_pagarme/application_controller.rb
catarse_pagarme-2.9.8 app/controllers/catarse_pagarme/application_controller.rb