module BankApi::Clients::BancoSecurity::Balance
Constants
- ACCOUNT_NUMBER_COLUMN
- AVAILABLE_BALANCE_COLUMN
- COUNTABLE_BALANCE_COLUMN
Public Instance Methods
extract_balance(td_pos)
click to toggle source
# File lib/bank_api/clients/banco_security/concerns/balance.rb, line 53 def extract_balance(td_pos) xp = "//*[@id=\"body\"]/div[1]/section/div/div/div[3]/div[2]/table/tbody/tr[1]/td[#{td_pos}]" money_to_i(browser.search(xpath: xp).text) end
find_account_balance(account_number)
click to toggle source
# File lib/bank_api/clients/banco_security/concerns/balance.rb, line 9 def find_account_balance(account_number) return get_balance_from_accounts_list(account_number) if account_number get_balance_from_account_summary end
get_balance_from_account_summary()
click to toggle source
# File lib/bank_api/clients/banco_security/concerns/balance.rb, line 29 def get_balance_from_account_summary available_balance = extract_balance(1) countable_balance = extract_balance(2) validate_summary_balance(available_balance, countable_balance) { available_balance: available_balance, countable_balance: countable_balance } end
get_balance_from_accounts_list(account_number)
click to toggle source
# File lib/bank_api/clients/banco_security/concerns/balance.rb, line 14 def get_balance_from_accounts_list(account_number) balance = browser.search(".cuentas-corrientes").search("tbody tr").map do |row| cells = row.search("td") { account_number: cells[ACCOUNT_NUMBER_COLUMN].text, available_balance: money_to_i(cells[AVAILABLE_BALANCE_COLUMN].text), countable_balance: money_to_i(cells[COUNTABLE_BALANCE_COLUMN].text) } end.find do |row| row[:account_number] == account_number end validate_account_balance(balance, account_number) balance end
money_to_i(text)
click to toggle source
# File lib/bank_api/clients/banco_security/concerns/balance.rb, line 58 def money_to_i(text) text.to_s.delete(".").delete("$").delete(" ").to_i end
validate_account_balance(balance, account_number)
click to toggle source
# File lib/bank_api/clients/banco_security/concerns/balance.rb, line 40 def validate_account_balance(balance, account_number) if balance.nil? raise BankApi::Balance::InvalidAccountNumber, "Couldn't find balance of account " + account_number.to_s end end
validate_summary_balance(available_balance, countable_balance)
click to toggle source
# File lib/bank_api/clients/banco_security/concerns/balance.rb, line 47 def validate_summary_balance(available_balance, countable_balance) if available_balance.zero? || countable_balance.zero? raise BankApi::Balance::MissingAccountBalance, "Couldn't find balance" end end