Commit Graph

206 Commits

Author SHA1 Message Date
Aaron Lindsay 62f0ae600b Add a few missing profile fields 2017-04-01 21:29:27 -04:00
Aaron Lindsay 9ede56e2c4 Add investment statement tests 2017-04-01 21:17:32 -04:00
Aaron Lindsay d7b265b995 Add open orders to investment statment responses 2017-04-01 11:05:40 -04:00
Aaron Lindsay 1cbd433116 request_test: Point out first difference in marshalled string 2017-03-31 20:16:44 -04:00
Aaron Lindsay 3fa614b649 Add tests for credit card requests and responses
Including one for OFX version 102
2017-03-31 16:22:33 -04:00
Aaron Lindsay 6618e031a7 Response: Use SignonRs.String() instead of a raw string 2017-03-31 15:30:10 -04:00
Aaron Lindsay d07455d797 Improve some request/response documentation 2017-03-31 15:29:57 -04:00
Aaron Lindsay e755650521 Rename files to more closely correspond to their message set tags 2017-03-31 15:05:59 -04:00
Aaron Lindsay 0d04085c7a Status: s/WARNING/WARN/ to comply with the spec 2017-03-31 14:53:56 -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 85684883c6 Add tests for signup requests and responses 2017-03-31 05:18:31 -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 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
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 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
Aaron Lindsay 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
Aaron Lindsay 3091a97b2c cmd/ofx: go vet 2017-03-28 19:47:17 -04:00
Aaron Lindsay 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
Aaron Lindsay 0dc6f0ba8a go vet 2017-03-27 20:14:55 -04:00
Aaron Lindsay 31f33b66d7 go fmt 2017-03-27 20:14:18 -04:00
Aaron Lindsay 2f56698a0b Add 401K information to INVSTMTTRNRS 2017-03-27 20:13:32 -04:00
Aaron Lindsay dfa5a4b6f5 Improve documentation 2017-03-26 21:02:20 -04:00
Aaron Lindsay f3b5eb5b31 Add 'WARNING' as possible STATUS SEVERITY 2017-03-26 20:09:37 -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 896bd55327 Add status code meanings to status code error messages 2017-03-25 06:14:52 -04:00
Aaron Lindsay 3c56e60a85 Add status code validation and meaning 2017-03-24 05:45:02 -04:00
Aaron Lindsay 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
Aaron Lindsay f511c6ca75 Add automated setting detection command 2017-03-23 08:43:34 -04:00
Aaron Lindsay ab79afa8ae Create initial README 2017-03-23 05:48:01 -04:00
Aaron Lindsay f2cea7c6d4 Switch to own clone of xml encoding library 2017-03-22 20:59:40 -04:00
Aaron Lindsay 8d8ee0016d Add command-line client 2017-03-22 20:29:08 -04:00
Aaron Lindsay 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
Aaron Lindsay 753249c16e client: Add RequestNoParse() 2017-03-22 19:56:59 -04:00
Aaron Lindsay 45e183072d Add investment transactions 2017-03-21 11:20:24 -04:00
Aaron Lindsay 4cfa85fe32 Add parsing position list 2017-03-20 21:09:08 -04:00
Aaron Lindsay a0e2c146e4 Add requesting/parsing security list 2017-03-20 21:07:58 -04:00
Aaron Lindsay 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
Aaron Lindsay 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
Aaron Lindsay bd10b644a9 Improve comments 2017-03-17 21:36:20 -04:00
Aaron Lindsay 76aeca66c8 Banking: Add credit card statements, image data, and pending transactions 2017-03-17 21:35:42 -04:00
Aaron Lindsay 8158868432 Reorganization 2017-03-17 21:35:26 -04:00
Aaron Lindsay add6036729 Move client to own file 2017-03-16 19:31:26 -04:00
Aaron Lindsay 073387b65b Improve comments 2017-03-16 11:20:20 -04:00
Aaron Lindsay f0b67bad85 Make marshalMessageSet() not a pointer receiver for Request
It doesn't even use the object
2017-03-16 11:13:52 -04:00
Aaron Lindsay 49cf745a20 Add Client, split from Request 2017-03-16 11:13:21 -04:00
Aaron Lindsay aeba01bf0f Guess version from header format 2017-03-15 21:00:49 -04:00
Aaron Lindsay cd1e7b480a Add the ability to download Bank Transactions 2017-03-14 10:31:14 -04:00
Aaron Lindsay 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