Sha256: 26a7ee11a9395a783e6bb042724ae8b37b511bdd9e8c68c6f972ea7fd6404f62

Contents?: true

Size: 1.62 KB

Versions: 5

Compression:

Stored size: 1.62 KB

Contents

module CatarsePagarme
  class SlipController < CatarsePagarme::ApplicationController

    def create
      transaction = SlipTransaction.new(permitted_attributes, payment).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, payment).charge!
      render text: transaction.boleto_url
    end

    protected

    def slip_attributes
      {
        payment_method: 'boleto',
        boleto_expiration_date: 2.days.from_now,
        amount: delegator.value_for_transaction,
        postback_url: ipn_pagarme_index_url(host: CatarsePagarme.configuration.host,
                                            subdomain: CatarsePagarme.configuration.subdomain,
                                            protocol: CatarsePagarme.configuration.protocol),
        customer: {
          email: payment.user.email,
          name: payment.user.name
        },
        metadata: {
          key: payment.generate_key 
        }
      }.update({ user: params[:user] })
    end

    def permitted_attributes
      attrs = ActionController::Parameters.new(slip_attributes)
      attrs.permit(:boleto_expiration_date, :payment_method, :amount, :postback_url, metadata: [:key], 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-2.6.4 app/controllers/catarse_pagarme/slip_controller.rb
catarse_pagarme-2.6.3 app/controllers/catarse_pagarme/slip_controller.rb
catarse_pagarme-2.6.2 app/controllers/catarse_pagarme/slip_controller.rb
catarse_pagarme-2.6.1 app/controllers/catarse_pagarme/slip_controller.rb
catarse_pagarme-2.6.0 app/controllers/catarse_pagarme/slip_controller.rb