Module: BankApi::Clients::BancoSecurity::Balance
- Included in:
- CompanyClient
- Defined in:
- lib/bank_api/clients/banco_security/concerns/balance.rb
Constant Summary collapse
- ACCOUNT_NUMBER_COLUMN =
0
- AVAILABLE_BALANCE_COLUMN =
1
- COUNTABLE_BALANCE_COLUMN =
2
Instance Method Summary collapse
- #extract_balance(td_pos) ⇒ Object
- #find_account_balance(account_number) ⇒ Object
- #get_balance_from_account_summary ⇒ Object
- #get_balance_from_accounts_list(account_number) ⇒ Object
- #money_to_i(text) ⇒ Object
- #validate_account_balance(balance, account_number) ⇒ Object
- #validate_summary_balance(available_balance, countable_balance) ⇒ Object
Instance Method Details
#extract_balance(td_pos) ⇒ Object
53 54 55 56 |
# 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) ⇒ Object
9 10 11 12 |
# 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 ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# 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) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# 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) ⇒ Object
58 59 60 |
# 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) ⇒ Object
40 41 42 43 44 45 |
# 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) ⇒ Object
47 48 49 50 51 |
# 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 |