class Bankscrap::Openbank::Account

Constants

ACCOUNT_ENDPOINT

Attributes

contract_id[RW]

Public Instance Methods

build_transaction(data) click to toggle source

Build a transaction object from API data

# File lib/bankscrap/openbank/account.rb, line 35
def build_transaction(data)
  Transaction.new(
    account: self,
    id: data['nummov'],
    amount: money(data['importe']),
    description: data['conceptoTabla'],
    effective_date: parse_date(data['fechaValor']),
    operation_date: parse_date(data['fechaOperacion']),
    balance: money(data['saldo'])
  )
end
fetch_transactions_for(connection, start_date: Date.today - 1.month, end_date: Date.today) click to toggle source

Fetch transactions for the given account. By default it fetches transactions for the last month,

Returns an array of BankScrap::Transaction objects

# File lib/bankscrap/openbank/account.rb, line 16
def fetch_transactions_for(connection, start_date: Date.today - 1.month, end_date: Date.today)
  transactions = []

  fields = { producto: contract_id,
             numeroContrato: id,
             fechaDesde: format_date(start_date),
             fechaHasta: format_date(end_date),
             concepto: '000' }
  # Loop over pagination
  until fields.empty?
    data = connection.get(ACCOUNT_ENDPOINT, fields: fields)
    transactions += data['movimientos'].map { |item| build_transaction(item) }
    fields = next_page_fields(data)
  end

  transactions
end