Sha256: 7e76b08646b960827f6a7c2802d11ce1aa479daccfcbe9d9161429aa72c52b4f

Contents?: true

Size: 846 Bytes

Versions: 11

Compression:

Stored size: 846 Bytes

Contents

module CatarsePagarme
  class SlipTransaction < TransactionBase
    def initialize(attributes, payment)
      super
      build_default_bank_account
    end

    def charge!
      update_user_bank_account

      self.transaction = PagarMe::Transaction.new(self.attributes)

      self.transaction.charge

      change_payment_state

      self.transaction
    end

    def payment_method
      PaymentType::SLIP
    end

    protected

    def update_user_bank_account
      if self.attributes.include?(:user)
        self.user.update_attributes(self.attributes.delete(:user))
      end

      if self.user.errors.present?
        raise ::PagarMe::PagarMeError.new(self.user.errors.full_messages.to_sentence)
      end
    end

    def build_default_bank_account
      self.user.build_bank_account unless self.user.bank_account
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
catarse_pagarme-2.6.12 app/models/catarse_pagarme/slip_transaction.rb
catarse_pagarme-2.6.11 app/models/catarse_pagarme/slip_transaction.rb
catarse_pagarme-2.6.10 app/models/catarse_pagarme/slip_transaction.rb
catarse_pagarme-2.6.9 app/models/catarse_pagarme/slip_transaction.rb
catarse_pagarme-2.6.8 app/models/catarse_pagarme/slip_transaction.rb
catarse_pagarme-2.6.7 app/models/catarse_pagarme/slip_transaction.rb
catarse_pagarme-2.6.6 app/models/catarse_pagarme/slip_transaction.rb
catarse_pagarme-2.6.5 app/models/catarse_pagarme/slip_transaction.rb
catarse_pagarme-2.6.4 app/models/catarse_pagarme/slip_transaction.rb
catarse_pagarme-2.6.3 app/models/catarse_pagarme/slip_transaction.rb
catarse_pagarme-2.6.2 app/models/catarse_pagarme/slip_transaction.rb