Commit Graph

167 Commits

Author SHA1 Message Date
John Starich 8ad638c7e2 Rename ofxgo_test package to ofxgo and remove self-imports/references
* Fix package in generate_constants.py
* Update generate_constants.py to use the new imports
2020-04-03 08:38:41 -04:00
John Starich f19189de45 Add DecodeResponse and *Response.Valid() for fine-grained parse control 2020-03-31 11:42:08 -04:00
John Starich 677a09295a Continue parsing after hitting validation errors
Supports mixed-case severity for Ally Bank's Quicken downloads 🙄
2020-03-30 10:50:10 -04:00
John Starich f75592381a Add Go version to go.mod for compatibility guarantees 2020-03-30 10:50:10 -04:00
Aaron Lindsay ebf7f5b757 Update xml module 2019-07-01 06:11:17 -04:00
John Starich 212fdc731b Omit end tags for encoding OFX 100-series requests
Closes https://github.com/aclindsa/ofxgo/issues/18
2019-07-01 06:11:16 -04:00
John Starich 66dd37781f Remove old cover tool installer 2019-07-01 06:01:57 -04:00
John Starich 67e527c855 Support carriage returns on new lines 2019-06-26 06:23:52 -04:00
Aaron Lindsay f41286cac7 .travis.yml: Add Go 1.12 2019-03-06 06:50:30 -05:00
Aaron Lindsay 423d460747 Bank transactions: Allow transaction currencies to be empty
The XML marahaller will attempt to marshal the top-level elements, not
knowing that the lower-level elements are empty. Making them pointers
solves this.
2019-03-06 06:00:05 -05:00
Aaron Lindsay 3e8a9c5a53
Merge pull request #16 from aclindsa/writable_responses
Allow for marshalling Response objects to strings containing XML/SGML
2019-03-02 15:33:38 -05:00
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