Sha256: f4e942d4fcd85a6f73680bdcf1c3df9b13066adf08cc265639aa312d3ccd0c1e

Contents?: true

Size: 1.55 KB

Versions: 4

Compression:

Stored size: 1.55 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',
        boleto_expiration_date: 2.days.from_now,
        amount: delegator.value_for_transaction,
        postback_url: ipn_pagarme_url(contribution, host: CatarsePagarme.configuration.host,
                                      subdomain: CatarsePagarme.configuration.subdomain,
                                      protocol: CatarsePagarme.configuration.protocol),
        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(:boleto_expiration_date, :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

4 entries across 4 versions & 1 rubygems

Version Path
catarse_pagarme-2.0.0 app/controllers/catarse_pagarme/slip_controller.rb
catarse_pagarme-1.0.1 app/controllers/catarse_pagarme/slip_controller.rb
catarse_pagarme-1.0.0 app/controllers/catarse_pagarme/slip_controller.rb
catarse_pagarme-0.1.8 app/controllers/catarse_pagarme/slip_controller.rb