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
d822179446
Add Type() to Message interface, check types when marshalling requests
2017-03-31 09:25:07 -04:00
85684883c6
Add tests for signup requests and responses
2017-03-31 05:18:31 -04:00
c1777df3df
Standardize transaction wrapper fields
2017-03-30 10:24:26 -04:00
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
6d6ee3ea1b
Add basic test for marshalling bank statement request
...
Also add marshalCheckRequest(), a helper function which prints the first
differences found between the two strings to aid in debugging test
failures.
2017-03-29 09:35:53 -04:00
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
1d8ba5c19a
Make optional struct fields pointers
...
This allows encoding/xml to properly comparison against nil to see if
they should be marshalled if the 'xml' tag contains ",omitempty" and for
users to test against nil to see if a field was present in the parsed
OFX.
This commit also fixes up cmd/ofx to use the new pointers.
2017-03-29 09:22:02 -04:00
119c01f99b
Make setting request fields from Client a Request method
...
This also makes it possible to call this method for testing without
making an HTTP request.
2017-03-29 08:56:35 -04:00
3091a97b2c
cmd/ofx: go vet
2017-03-28 19:47:17 -04:00
f51af6dd44
cmd/ofx: Play nice with Fidelity
...
Fidelity (Netbenefits at least) returns an error of DTEND is the current
day, so request 'yesterday' by default.
2017-03-28 19:42:16 -04:00
0dc6f0ba8a
go vet
2017-03-27 20:14:55 -04:00
31f33b66d7
go fmt
2017-03-27 20:14:18 -04:00
2f56698a0b
Add 401K information to INVSTMTTRNRS
2017-03-27 20:13:32 -04:00
dfa5a4b6f5
Improve documentation
2017-03-26 21:02:20 -04:00
f3b5eb5b31
Add 'WARNING' as possible STATUS SEVERITY
2017-03-26 20:09:37 -04:00
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
896bd55327
Add status code meanings to status code error messages
2017-03-25 06:14:52 -04:00
3c56e60a85
Add status code validation and meaning
2017-03-24 05:45:02 -04:00
c4e1de3677
Only download transactions for the last year
...
Some FIs don't return *any* transactions if you ask them for *all* of
them since the beginning of (UNIX) time...
2017-03-23 20:55:31 -04:00
f511c6ca75
Add automated setting detection command
2017-03-23 08:43:34 -04:00
ab79afa8ae
Create initial README
2017-03-23 05:48:01 -04:00
f2cea7c6d4
Switch to own clone of xml encoding library
2017-03-22 20:59:40 -04:00
8d8ee0016d
Add command-line client
2017-03-22 20:29:08 -04:00
6491311dbc
Move credit cards to the right message set
...
They don't belong in with the banking message set like they were, even
though they're in the same section in the spec...
2017-03-22 20:01:30 -04:00
753249c16e
client: Add RequestNoParse()
2017-03-22 19:56:59 -04:00
45e183072d
Add investment transactions
2017-03-21 11:20:24 -04:00
4cfa85fe32
Add parsing position list
2017-03-20 21:09:08 -04:00
a0e2c146e4
Add requesting/parsing security list
2017-03-20 21:07:58 -04:00
f59f3713c2
Add simple investment requests/responses
...
This is lacking (at least) parsing the list of securities frequently
sent with investment statements
2017-03-19 21:08:58 -04:00
81814feaff
types: Be more lenient on Date, Int, and Amount parsing
...
Some of these types can have stray newlines in them, and Vanguard has a
very strange bug where they repeat the time portion of a DTSTART element
for a second time (we disregard the latter portion).
2017-03-19 20:46:01 -04:00
bd10b644a9
Improve comments
2017-03-17 21:36:20 -04:00
76aeca66c8
Banking: Add credit card statements, image data, and pending transactions
2017-03-17 21:35:42 -04:00
8158868432
Reorganization
2017-03-17 21:35:26 -04:00
add6036729
Move client to own file
2017-03-16 19:31:26 -04:00
073387b65b
Improve comments
2017-03-16 11:20:20 -04:00
f0b67bad85
Make marshalMessageSet() not a pointer receiver for Request
...
It doesn't even use the object
2017-03-16 11:13:52 -04:00
49cf745a20
Add Client, split from Request
2017-03-16 11:13:21 -04:00
aeba01bf0f
Guess version from header format
2017-03-15 21:00:49 -04:00
cd1e7b480a
Add the ability to download Bank Transactions
2017-03-14 10:31:14 -04:00
59c8bce519
Make an empty CharsetReader
...
This gets around weird errors when the <?xml processing instruction has
things like utf-16 in it. This should maybe be fixed another way later.
2017-03-13 21:10:43 -04:00
b90c3e0dcd
Ignore whitespace character data xml Tokens
2017-03-13 21:10:19 -04:00
257495a343
Add testing for basic types, fix some bugs
2017-03-13 21:09:15 -04:00
0e62af64e3
Implement Signup message parsing
2017-03-11 21:13:06 -05:00
74b0ff7816
Add parsing of profile messages, fix date parsing
...
Profile messages are still missing validation
2017-03-11 13:10:39 -05:00
689337d81d
Remove 'Ofx' prefix on types
2017-03-11 07:18:02 -05:00
99cd8f7273
Initial commit
2017-03-11 07:15:15 -05:00