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

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 ()
  return get_balance_from_accounts_list() if 
  
end

#get_balance_from_account_summaryObject



29
30
31
32
33
34
35
36
37
38
# File 'lib/bank_api/clients/banco_security/concerns/balance.rb', line 29

def 
  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()
  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] == 
  end
  (balance, )
  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 (balance, )
  if balance.nil?
    raise BankApi::Balance::InvalidAccountNumber, "Couldn't find balance of account " +
      .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