Commit Graph

204 Commits

Author SHA1 Message Date
Aaron Lindsay e302ce2e6b CI: Update go versions tested 2023-03-14 22:18:43 -04:00
David Bartley e3c4afc0a3 Add `SecurityInfo()` and `InvPosition()` tests. 2023-03-14 22:10:19 -04:00
David Bartley c2490e1c6a Add `InvPosition() InvPosition` to `Position` interface. 2023-03-14 22:10:19 -04:00
David Bartley 12aca9ab06 Add `SecurityInfo() SecInfo` to `Security` interface. 2023-03-14 22:10:19 -04:00
David Ward 1f657a5d18 Add missing handling for `-dryrun` flag in command-line client
This flag was only handled for the `download-profile` command. Add
the same handling for all other commands (except `detect-settings`).
2023-02-05 19:52:02 -05:00
Aaron Lindsay afd882f7d2 README: Add inline link to documentation 2021-10-17 21:57:26 -04:00
Aaron Lindsay 5ed0050aad Add tests for String/Boolean String() methods 2021-10-17 21:55:45 -04:00
Aaron Lindsay 09f161e13e Add tests for Payee/Balance Valid() methods 2021-10-17 21:55:45 -04:00
Aaron Lindsay e1a72fcd54 Replace github.com/howeyc/gopass with golang.org/x/term
gopass is no longer maintained, and the suggested replacement for
getting passwords from terminals is x/term.
2021-10-17 21:20:04 -04:00
Aaron Lindsay a4a166aa74 Update dependencies 2021-10-17 21:04:05 -04:00
Aaron Lindsay 3ee400d1ec Test against latest golang: 1.17 2021-10-17 20:50:10 -04:00
mhabb 67fa945cc8
cmd/ofx: check for nil Currency fields in transactions 2021-10-17 15:49:08 -04:00
johnny cb48d30deb Added Accept http header as Citi now requires it
Without this header set Citi returns http 403 for every request.
2021-09-01 09:35:45 -04:00
Aaron Lindsay 12ea3b7e8b Update max CI Golang version to 1.16.x 2021-03-16 15:52:56 -04:00
Aaron Lindsay e76c697cad cmd/ofx: Allow setting User-Agent header from command-line 2021-03-16 15:36:27 -04:00
Aaron Lindsay 2641443ebe BasicClient: Add ability to set User-Agent header
Some financial institutions require specific values in the User-Agent
header.
2021-03-16 15:36:27 -04:00
David Alpert 01b26887af GH-39 relax ofx response parsing to support TYPE1 responses
Section 4.2.2.2 Type 1 Protocol Overview in the
[Open Financial Exchange Specification 2.2, Nov 26, 2017](https://www.ofx.net/downloads/OFX%202.2.pdf)
states that:

    Type 1 applies only to the request part of a message; the server response is unaffected.

Thus it appears that we can safely parse SECURITY:TYPE1
using the same logic that we parse SECURITY:NONE

As I understand it, Security:TYPE1 indicates that the
financial institution uses SSL enryption to protect
customer credentials in transit.  This applies
explicitly to the incoming requests which may
contain authentication as part of the request
but does not appear to cause any material changes
to the response format.

As a result it appears that we can safely parse
SECURITY:TYPE1 responess in the same way that
we parse SECURITY:NONE responsese.
2021-03-12 10:46:24 -05:00
Aaron Ross 2b8a79e4b7 review changes 2021-01-04 07:24:40 -05:00
Aaron Ross 9136c9bab2 README: add example for parsing local file 2021-01-04 07:24:40 -05:00
Aaron Ross 0d93a42626 support SGML OFX responses with no line breaks
Some financial institutions (*cough* Wells Fargo *cough*) export OFX files as a single line, which is technically valid according to the v1 spec. In order to parse them correctly, `readSGMLHeaders` now uses a regular expression that allows for all whitespace/line breaks to be optionally excluded.

A new sample response (wellsfargo.qfx) has been added to document this behaviour.
2021-01-04 07:24:40 -05:00
Aaron Lindsay 56ca46714b cmd/ofx: Add -dryrun 2020-12-07 13:49:35 -05:00
Aaron Lindsay 4c7c48cab7 cmd/ofx: Use 'response.ofx' as the default download file everywhere
Conflicting defaults led to confusing default behavior between
sub-commands.
2020-12-07 13:49:35 -05:00
Aaron Lindsay 8c1e6eafab cmd/ofx: Add download-profile command 2020-11-25 14:42:25 -05:00
Aaron Lindsay 52f3e4120b README: Replace Travis badge with GitHub Actions 2020-11-25 07:18:43 -05:00
Aaron Lindsay ef87cc536c Replace Travis CI with Github Actions 2020-11-25 07:09:08 -05:00
Aaron Lindsay 830a6064c7 .travis.yml: Set Go 1.12 as the minimum version
I'm getting errors when attempting to build with any older version:

    golang.org/x/term
    # golang.org/x/term
    ../../../golang.org/x/term/term_unix_linux.go:9:7: ioctlReadTermios redeclared in this block
	    previous declaration at ../../../golang.org/x/term/term_unix_aix.go:9:26
    ../../../golang.org/x/term/term_unix_linux.go:10:7: ioctlWriteTermios redeclared in this block
	    previous declaration at ../../../golang.org/x/term/term_unix_aix.go:10:27
2020-11-17 10:33:48 -05:00
Aaron Lindsay 6807c93e0e cmd/ofx: Add option to use carriage returns for requests 2020-11-17 10:33:48 -05:00
Aaron Lindsay 10edd94920 Vanguard client: Accept 500 errors on initial response
Though their server returns a 500 HTTP status code, it still sets the
required cookies on the response that we can use to make a second
request.
2020-11-17 10:33:48 -05:00
Aaron Lindsay d88d45a664 signon: Add missing GENUSERKEY field 2020-11-17 10:33:48 -05:00
Aaron Lindsay 2caa23564a Fix spelling of 'Withholding' 2020-11-07 16:45:55 -05:00
Aaron Lindsay 5923a34de0 README: Fix bad documentation badge link 2020-10-06 23:15:00 -04:00
Aaron Lindsay aa4d8074b2 Fix spelling error 2020-10-06 23:14:42 -04:00
Aaron Lindsay 65cc26a0db Make golint happy 2020-10-06 23:14:42 -04:00
Aaron Lindsay 8f3e7309f2 Add comments to a few exported methods 2020-10-06 23:14:42 -04:00
Aaron Lindsay 631508ccc9 README: Move from godoc.org to pkg.go.dev 2020-10-06 22:46:45 -04:00
Aaron Lindsay 60a5707de6 Update dependencies 2020-10-06 22:38:40 -04:00
Aaron Lindsay 3240ef383b README: Update build status badge 2020-10-06 22:19:44 -04:00
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