Ofex v0.2.5 Ofex View Source
Documentation for Ofex.
Link to this section Summary
Functions
Validates and parses Open Financial Exchange (OFX) data
Same as parse
, but does not validate data that is passed in and allows exceptions to be raised
Link to this section Functions
parse(String.t) :: {:ok, map} | {:error, %Ofex.InvalidData{__exception__: term, data: term, message: term}}
Validates and parses Open Financial Exchange (OFX) data.
data
will need to be supplied as a string. Each message set of the OFX data is parsed
separately and returned as map containing a :signon
map and an :accounts
list.
:accounts
Message Set Response (BANKMSGSRS), (CREDITCARDMSGSRS), or (SIGNUPMSGSR) viaOfex.BankAccount
orOfex.CreditCardAccount
:signon
Signon Message Set Response (SIGNONMSGSRS) viaOfex.Signon
Parsing errors or invalid data will return a tuple of {:error, %Ofex.InvalidData{}}
(see Ofex.InvalidData
)
Examples
iex > Ofex.parse("<OFX>..actual_ofx_data...</OFX>")
{:ok, %{signon: %{}, accounts: [%{}, %{}, ...}}
iex> Ofex.parse("I am definitely not OFX")
{:error, %Ofex.InvalidData{message: "data provided cannot be parsed. May not be OFX format", data: "I am definitely not OFX"}}
Only strings are allowed to be passed in for parsing
iex> Ofex.parse(1234)
{:error, %Ofex.InvalidData{message: "data is not binary", data: 1234}}
iex> Ofex.parse(%{whoops: "a daisy"})
{:error, %Ofex.InvalidData{message: "data is not binary", data: %{whoops: "a daisy"}}}
Unsupported message sets
Messages sets chunked into a list based on a *MSGSRS*
match on the name then individually parsed. Support is gradually
being built out so there may be cases that a message set is matched, but not parsed. The process will complete,
but those unmatched message sets will be logged to the console and then returned under string key of the
message set name.
iex > Ofex.parse("<OFX><UNSUPPORTEDMSGSRSV1>some_data</UNSUPPORTEDMSGSRSV1></OFX>")
22:22:14.896 [warn] Skipping unsupported message set: UNSUPPORTEDMSGSRSV1
%{"UNSUPPORTEDMSGSRSV1" => "some_data"}