Sha256: 939af7e1e1083e211aeb077df74688e66e0481964fbc55932e191b1989b6f1ea

Contents?: true

Size: 1.26 KB

Versions: 5

Compression:

Stored size: 1.26 KB

Contents

module CatarsePagarme
  class SlipController < CatarsePagarme::ApplicationController

    def create
      transaction = SlipTransaction.new(permitted_attributes, contribution).charge!

      render json: { boleto_url: transaction.boleto_url, payment_status: transaction.status }
    rescue PagarMe::PagarMeError => e
      render json: { boleto_url: nil, payment_status: 'failed', message: e.message }
    end

    def update
      transaction = SlipTransaction.new(permitted_attributes, contribution).charge!
      render text: transaction.boleto_url
    end

    protected

    def slip_attributes
      {
        payment_method: 'boleto',
        amount: delegator.value_for_transaction,
        postback_url: ipn_pagarme_url(contribution),
        customer: {
          email: contribution.user.email,
          name: contribution.user.name
        }
      }.update({ user: params[:user] })
    end

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

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
catarse_pagarme-0.2.0 app/controllers/catarse_pagarme/slip_controller.rb
catarse_pagarme-0.1.3 app/controllers/catarse_pagarme/slip_controller.rb
catarse_pagarme-0.1.2 app/controllers/catarse_pagarme/slip_controller.rb
catarse_pagarme-0.1.1 app/controllers/catarse_pagarme/slip_controller.rb
catarse_pagarme-0.1.0 app/controllers/catarse_pagarme/slip_controller.rb