Commit Graph

23 Commits

Author SHA1 Message Date
Aaron Lindsay 35c7116654 Add the ability to marshal a Response to SGML/XML and test it
This allows for ofxgo to be used to create well-formatted OFX from poor
OFX, or even be used to generate OFX from other formats for easier
importing into financial management software.

Test this functionality by adding "round trip" testing to all existing
tests - ensure that responses' content is the same after a round trip of
marshalling and unmarshalling them.
2019-03-02 07:03:11 -05:00
Aaron Lindsay 1e55cb8bd7 Switch to copy of encoding/xml with only that subdirectory 2017-10-02 09:21:56 -04:00
Aaron Lindsay bc541d881d Add transaction UID validation to all messages 2017-04-18 20:22:07 -04:00
Aaron Lindsay 9bd9c01962 Add OFX version to Valid() calls
This allows for future differentiation based on different requirements
of different versions of the OFX specification.
2017-04-17 11:11:46 -04:00
Aaron Lindsay 1ff64a9d55 Comment investments, profiles, seclist, signon, signup, and types 2017-04-13 10:18:07 -04:00
Aaron Lindsay 4521bb377a Use named constants instead of strings for enum-like OFX fields
This adds a python script to generate constants.go when `go generate` is
called, and updates the structs, tests, and command-line client to all
use the new named constants.
2017-04-06 09:06:41 -04:00
Aaron Lindsay ea700b33a9 profile: Change 'VER' from a String to an Int 2017-04-05 05:26:29 -04:00
Aaron Lindsay 59a29e18a5 profile: Save message set name somewhere other than XMLName
Of course the same information is available there, but having it brought
out as its own field seems more convenient and intuitive for users.
2017-04-03 19:56:16 -04:00
Aaron Lindsay f56a061627 profile: Fix PinCh field capitalization 2017-04-03 19:55:58 -04:00
Aaron Lindsay 42864dace3 Rename Response/Request Profile -> Prof
This is more in line with the rest, which match their OFX message set
names except for capitalization.
2017-04-03 19:50:16 -04:00
Aaron Lindsay 62f0ae600b Add a few missing profile fields 2017-04-01 21:29:27 -04:00
Aaron Lindsay f185d78d29 Generalize response parsing code
This removes the many decodeXXXMessageSet() functions and replaces them
with a large map and a single generic decodeMessageSet() function. Also
change Responses to satisfy the Message interface as pointer types
(instead of the raw types), add the full set of top-level message sets
(though most of them still lack any message-parsing ability), adjust the
message set names to more closely mirror their OFX names, and fixup
tests and the command-line client to match the above changes.
2017-03-31 11:54:43 -04:00
Aaron Lindsay d822179446 Add Type() to Message interface, check types when marshalling requests 2017-03-31 09:25:07 -04:00
Aaron Lindsay c1777df3df Standardize transaction wrapper fields 2017-03-30 10:24:26 -04:00
Aaron Lindsay 6efd3ae921 Add test for banking responses
This also adds a generic response equality testing framework, a missing
Status field to all current responses, and Equal() methods to all basic
types.
2017-03-30 07:08:34 -04:00
Aaron Lindsay 5596cfbf8d Don't require UIDs to be 36 characters
The spec strongly recommends this, but doesn't strictly require it
2017-03-29 09:23:15 -04:00
Aaron Lindsay 27a88ca703 Make Decode*MessageSet functions private to the library
These don't need to be exposed and clutter the auto-generated
documentation
2017-03-25 06:23:30 -04:00
Aaron Lindsay f2cea7c6d4 Switch to own clone of xml encoding library 2017-03-22 20:59:40 -04:00
Aaron Lindsay b90c3e0dcd Ignore whitespace character data xml Tokens 2017-03-13 21:10:19 -04:00
Aaron Lindsay 0e62af64e3 Implement Signup message parsing 2017-03-11 21:13:06 -05:00
Aaron Lindsay 74b0ff7816 Add parsing of profile messages, fix date parsing
Profile messages are still missing validation
2017-03-11 13:10:39 -05:00
Aaron Lindsay 689337d81d Remove 'Ofx' prefix on types 2017-03-11 07:18:02 -05:00
Aaron Lindsay 99cd8f7273 Initial commit 2017-03-11 07:15:15 -05:00