Commit Graph

206 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 286e619071 Pull out writing the OFX header to its own function
This is in preparation for also allowing responses to be written via the
library (as opposed to only read).
2019-03-01 05:51:36 -05:00
Aaron Lindsay 9dd9c3bd3f Include 'cmd' module dependencies 2019-03-01 05:50:46 -05:00
Martin Kobetic 0f6ceccd86 Work around missing blank line after last header
Detect when a newline doesn't follow the last header when parsing SGML and break out of the header-parsing loop early. Add an example .qfx file demonstrating the broken behavior we're working around and a test.
2019-01-04 11:18:55 -05:00
Aaron Lindsay 7691881132
Merge pull request #13 from aclindsa/dep_to_go_mod
Switch from `dep` to `go mod`
2018-10-11 21:08:30 -04:00
Aaron Lindsay 61262b87d8 Switch from `dep` to `go mod` 2018-10-11 21:00:03 -04:00
Aaron Lindsay 5e2e3a2bf7
Merge pull request #12 from aclindsa/discover_hack
Add Hack for Discover
2018-10-08 06:00:36 -04:00
Aaron Lindsay 22a6d65b98 Add Hack for Discover
Discover requires an exact set of headers in exact order, or it returns
HTTP 403.
2018-10-08 05:55:08 -04:00
Aaron Lindsay 77b154695f detect_settings: Add newer APPVER's for 'QWIN' APPID 2018-10-04 06:50:38 -04:00
Aaron Lindsay ac09538ec3
Merge pull request #11 from aclindsa/make_client_interface
Make Client an interface instead of a struct
2018-10-03 10:23:40 -04:00
Aaron Lindsay d8491bed1d Make Client an interface instead of a struct
This makes it easier to maintain per-institution hacks that start
interacting with each other if you try to do them all in the same client
code. This commit also breaks out the existing Vanguard hack into its
own Client implementation.
2018-10-03 10:18:54 -04:00
Aaron Lindsay 1b4f27b31f
Merge pull request #10 from aclindsa/update_dependencies
Update dependencies
2018-10-02 21:07:02 -04:00
Aaron Lindsay eb35a26986 Update dependencies 2018-10-02 21:01:03 -04:00
Aaron Lindsay 5c10ac5ea1
Merge pull request #9 from aclindsa/client_interface
Add BasicClient, update Client to be interface
2018-10-02 21:00:44 -04:00
Aaron Lindsay 94a77ac754 Add BasicClient, update Client to be interface
This paves the way for more easily implementing different clients for
different financial institutions
2018-10-02 20:55:25 -04:00
Aaron Lindsay de58d3fc0d
Merge pull request #8 from aclindsa/remove_unused_default_client
client.go: remove unused defaultClient var
2018-10-02 20:41:42 -04:00
Aaron Lindsay 88e5521348 client.go: remove unused defaultClient var 2018-10-02 20:33:33 -04:00
Aaron Lindsay 54666608a4
Merge pull request #7 from aclindsa/dont_export_rawrequestcookies
Don't export Client's rawRequestCookies method
2018-10-02 20:27:34 -04:00
Aaron Lindsay 1cc508c6d3 Don't export Client's rawRequestCookies method
It is used to fix bad behavior and should not be exposed
2018-10-02 20:20:07 -04:00
Aaron Lindsay c6a806399a
Merge pull request #5 from nicksnyder/patch-1
Make README example compile
2018-04-15 07:21:52 -04:00
Nick Snyder 2a92b29a62
currency := stmt.CurDef 2018-04-14 22:28:30 -07:00
Nick Snyder 2fbb276a22
Make example compile 2018-04-14 09:06:32 -04:00
Aaron Lindsay 06de7e2af6 Add example usage to README 2017-11-18 20:00:37 -05:00
Aaron Lindsay 977dacfbbd .travis.yml: Add `dep ensure` 2017-11-18 20:00:37 -05:00
Aaron Lindsay ddc674b287 go fmt 2017-11-18 05:58:32 -05:00
Aaron Lindsay 29fc9c20fe Add `dep` vendoring 2017-11-18 05:56:33 -05:00
Aaron Lindsay d81d75876f .travis.yml: Don't fail builds on coveralls failures 2017-11-18 05:25:02 -05:00
Aaron Lindsay 1264e6e486 README: Add go 1.9 requirement 2017-10-27 09:03:57 -04:00
Aaron Lindsay f408232d77 Mark testing helper functions with t.Helper()
This makes error messages from tests report the line number of the error
in the test function itself instead of the error in the helper.
2017-10-06 05:53:19 -04:00
Aaron Lindsay fa05f64497 Merge pull request #2 from aclindsa/smaller_xml_parser
Switch to copy of encoding/xml with only that subdirectory
2017-10-02 09:33:24 -04:00
Aaron Lindsay 02f59a7b4f .travis.yml: Drop go 1.8
The latest encoding/xml now uses sync.Map
2017-10-02 09:28:09 -04:00
Aaron Lindsay 1e55cb8bd7 Switch to copy of encoding/xml with only that subdirectory 2017-10-02 09:21:56 -04:00
Aaron Lindsay 6359499ea2 .travis.yml: Add Go 1.9.x 2017-09-20 20:30:59 -04:00
Aaron Lindsay fa72af4f6c client: Retry HTTP requests for empty responses with cookies
This works around a particular FI's penchant for JSESSIONID cookies
2017-09-01 08:41:15 -04:00
Aaron Lindsay 04436f048d Add MoneyGo reference to README 2017-06-05 21:12:04 -04:00
Aaron Lindsay fcee1ec452 Update/improve documentation 2017-05-09 16:30:35 -04:00
Aaron Lindsay 4cb0eb4f85 Clarify use of Currency vs. OrigCurrency 2017-04-19 21:31:45 -04:00
Aaron Lindsay bc541d881d Add transaction UID validation to all messages 2017-04-18 20:22:07 -04:00
Aaron Lindsay 8712be5a9d Bank Transactions: Use Currency structs, not CurrSymbol directly 2017-04-18 20:17:44 -04:00
Aaron Lindsay a3e42fc903 `go vet` and `golint` 2017-04-18 19:50:04 -04:00
Aaron Lindsay 1ee7197340 Add validation of banking requests and responses 2017-04-18 19:46:23 -04:00
Aaron Lindsay 7f2ca5db0f Check Valid() when parsing responses 2017-04-17 20:37:40 -04:00
Aaron Lindsay 2046fa32e5 Use CurrSymbol instead of String to represent currencies 2017-04-17 20:20:22 -04:00
Aaron Lindsay faac776ca4 Add Currency type 2017-04-17 20:11:53 -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 0eba6741f2 Make the OFX spec version an 'enum' 2017-04-17 10:54:20 -04:00
Aaron Lindsay 94f49640b4 cmd/ofx: `golint` 2017-04-16 20:50:06 -04:00
Aaron Lindsay 33c7ad463c spelling fix 2017-04-16 20:46:32 -04:00
Aaron Lindsay f64d19ed8d client: `golint` 2017-04-16 20:38:56 -04:00
Aaron Lindsay 1ff64a9d55 Comment investments, profiles, seclist, signon, signup, and types 2017-04-13 10:18:07 -04:00