061b31a99d
Add test for Date.Equal()
2017-04-04 19:51:35 -04:00
1560f44a3c
Switch Date to contain time.Time instead of being a typedef
2017-04-04 19:50:41 -04:00
7f5ef5751d
Switch Amount to contain big.Rat instead of being a typedef
2017-04-03 21:15:08 -04:00
9b03829645
Add additional investment statement response test
2017-04-03 20:50:31 -04:00
cd39e4f8af
Handle SGML responses with post-colon spaces in headers
2017-04-03 20:49:48 -04:00
ea133999ee
Add more leaf elements missed earlier
2017-04-03 20:48:01 -04:00
737d289b29
Add profile tests
2017-04-03 19:59:30 -04:00
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
f56a061627
profile: Fix PinCh field capitalization
2017-04-03 19:55:58 -04:00
e2b0819888
Add missing leaf elements with numbers
2017-04-03 19:54:32 -04:00
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
7834d53f9b
Trim spaces when unmarshalling UIDs
...
This ensures the correct value is parsed when SGML tags aren't closed.
Also add a test.
2017-04-03 19:46:10 -04:00
47f1b82c0b
Check HTTPS is always used
2017-04-01 21:33:56 -04:00
62f0ae600b
Add a few missing profile fields
2017-04-01 21:29:27 -04:00
9ede56e2c4
Add investment statement tests
2017-04-01 21:17:32 -04:00
d7b265b995
Add open orders to investment statment responses
2017-04-01 11:05:40 -04:00
1cbd433116
request_test: Point out first difference in marshalled string
2017-03-31 20:16:44 -04:00
3fa614b649
Add tests for credit card requests and responses
...
Including one for OFX version 102
2017-03-31 16:22:33 -04:00
6618e031a7
Response: Use SignonRs.String() instead of a raw string
2017-03-31 15:30:10 -04:00
d07455d797
Improve some request/response documentation
2017-03-31 15:29:57 -04:00
e755650521
Rename files to more closely correspond to their message set tags
2017-03-31 15:05:59 -04:00
0d04085c7a
Status: s/WARNING/WARN/ to comply with the spec
2017-03-31 14:53:56 -04:00
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