Class: CatarsePagarme::BalanceTransferDelegator
- Inherits:
-
Object
- Object
- CatarsePagarme::BalanceTransferDelegator
- Defined in:
- app/models/catarse_pagarme/balance_transfer_delegator.rb
Instance Attribute Summary collapse
-
#balance_transfer ⇒ Object
Returns the value of attribute balance_transfer.
-
#transfer ⇒ Object
Returns the value of attribute transfer.
Instance Method Summary collapse
- #bank_account_attributes ⇒ Object
- #configure_pagarme ⇒ Object
-
#initialize(balance_transfer) ⇒ BalanceTransferDelegator
constructor
A new instance of BalanceTransferDelegator.
- #transfer_funds ⇒ Object
- #value_for_transaction ⇒ Object
Constructor Details
#initialize(balance_transfer) ⇒ BalanceTransferDelegator
Returns a new instance of BalanceTransferDelegator.
5 6 7 8 |
# File 'app/models/catarse_pagarme/balance_transfer_delegator.rb', line 5 def initialize(balance_transfer) configure_pagarme self.balance_transfer = balance_transfer end |
Instance Attribute Details
#balance_transfer ⇒ Object
Returns the value of attribute balance_transfer.
3 4 5 |
# File 'app/models/catarse_pagarme/balance_transfer_delegator.rb', line 3 def balance_transfer @balance_transfer end |
#transfer ⇒ Object
Returns the value of attribute transfer.
3 4 5 |
# File 'app/models/catarse_pagarme/balance_transfer_delegator.rb', line 3 def transfer @transfer end |
Instance Method Details
#bank_account_attributes ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'app/models/catarse_pagarme/balance_transfer_delegator.rb', line 35 def bank_account_attributes user = balance_transfer.user account = user.bank_account bank_account_attrs = { bank_account: { bank_code: (account.bank.code || account.bank.name), agencia: account.agency, agencia_dv: account.agency_digit, conta: account.account, conta_dv: account.account_digit, legal_name: user.name[0..29], document_number: user.cpf, type: account.account_type } } bank_account_attrs[:bank_account].delete(:agencia_dv) if account.agency_digit.blank? return bank_account_attrs end |
#configure_pagarme ⇒ Object
56 57 58 |
# File 'app/models/catarse_pagarme/balance_transfer_delegator.rb', line 56 def configure_pagarme ::PagarMe.api_key = CatarsePagarme.configuration.api_key end |
#transfer_funds ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/models/catarse_pagarme/balance_transfer_delegator.rb', line 10 def transfer_funds ActiveRecord::Base.transaction do raise "unable to create transfer, need to be authorized" if !balance_transfer. bank_account = PagarMe::BankAccount.new(bank_account_attributes.delete(:bank_account)) bank_account.create raise "unable to create an bank account" unless bank_account.id.present? transfer = PagarMe::Transfer.new({ bank_account_id: bank_account.id, amount: value_for_transaction, metadata: { balance_transfer_id: balance_transfer.id, seed: SecureRandom.hex(4) } }) transfer.create raise "unable to create a transfer" unless transfer.id.present? balance_transfer.update(transfer_id: transfer.id) balance_transfer.transition_to(:processing, transfer_data: transfer.to_hash) balance_transfer end end |
#value_for_transaction ⇒ Object
60 61 62 |
# File 'app/models/catarse_pagarme/balance_transfer_delegator.rb', line 60 def value_for_transaction (self.balance_transfer.amount * 100).to_i end |