Class: CatarsePagarme::CreditCardTransaction

Inherits:
TransactionBase show all
Defined in:
app/models/catarse_pagarme/credit_card_transaction.rb

Instance Attribute Summary

Attributes inherited from TransactionBase

#attributes, #payment, #transaction, #user

Instance Method Summary collapse

Methods inherited from TransactionBase

#attributes_to_payment, #change_payment_state, #default_installments, #delegator, #initialize, #payment_method

Constructor Details

This class inherits a constructor from CatarsePagarme::TransactionBase

Instance Method Details

#charge!Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'app/models/catarse_pagarme/credit_card_transaction.rb', line 4

def charge!
  save_card = self.attributes.delete(:save_card)

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

  change_payment_state

  if self.transaction.status == 'refused'
    raise ::PagarMe::PagarMeError.new(I18n.t('projects.contributions.edit.transaction_error'))
  end

  save_user_credit_card if save_card
  self.transaction
end

#save_user_credit_cardObject



20
21
22
23
24
25
26
27
28
# File 'app/models/catarse_pagarme/credit_card_transaction.rb', line 20

def save_user_credit_card
  card = self.transaction.card

  credit_card = self.user.credit_cards.find_or_initialize_by(card_key: card.id)
  credit_card.last_digits = card.last_digits
  credit_card.card_brand = card.brand

  credit_card.save!
end