Commit Graph

46 Commits

Author SHA1 Message Date
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
Aaron Lindsay b90c3e0dcd Ignore whitespace character data xml Tokens 2017-03-13 21:10:19 -04:00
Aaron Lindsay 257495a343 Add testing for basic types, fix some bugs 2017-03-13 21:09:15 -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