Class: CatarsePagarme::SubscriptionTransaction

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

Instance Attribute Summary

Attributes inherited from TransactionBase

#attributes, #contribution, #subscription, #transaction, #user

Instance Method Summary collapse

Methods inherited from TransactionBase

#attributes_to_contribution, #change_contribution_state, #delegator, #initialize, #payment_method

Constructor Details

This class inherits a constructor from CatarsePagarme::TransactionBase

Instance Method Details

#charge!Object



3
4
5
6
7
8
9
10
11
12
13
# File 'app/models/catarse_pagarme/subscription_transaction.rb', line 3

def charge!
  validate_subscription_id

  self.subscription = PagarMe::Subscription.find_by_id(self.attributes[:subscription_id])
  self.subscription.charge(self.attributes[:amount], self.attributes[:installments])
  self.transaction = subscription.current_transaction

  change_contribution_state

  self.transaction
end

#validate_subscription_idObject



15
16
17
18
19
# File 'app/models/catarse_pagarme/subscription_transaction.rb', line 15

def validate_subscription_id
  unless self.user.credit_cards.where(subscription_id: self.attributes[:subscription_id]).present?
    raise PagarMe::PagarMeError.new('invalid subscription')
  end
end