~mendelmaleh/pfin

5c1e70a0b8446799b943f837d8b7debc689ddd96 — Mendel E 25 days ago 4b06f49 master
Fixups
4 files changed, 35 insertions(+), 1 deletions(-)

A parser/README.md
M parser/amex/types.go
M parser/personal/parse_test.go
M parser/util/date.go
A parser/README.md => parser/README.md +32 -0
@@ 0,0 1,32 @@
# American Express

1. Login to [americanexpress.com]
2. Go to the "Statements & Activity" tab
3. Select "Previous Billing Periods" in the sidebar
4. Choose the billing period
5. Click the download icon in the "Transactions" area
6. Choose "CSV"
7. Enable additional transaction details
8. Click the "Download" button.

# Bank of America

1. Login to [bankofamerica.com]
2. Select the account
3. Go to the "Activity" tab
4. Click the "Download" link
5. Choose the transaction period
6. Set the file type to "Microsoft Excel Format" (CSV)
7. Click the "Download transactions" button.

# Capital One

1. Login to [capitalone.com]
2. Click the account (or click "View More" in the "Recent Transactions" area)
3. Scroll to your last statement and click "Download Transactions" (or append `/DownloadTransactions` to the URL)
4. Set the file type to "CSV"
5. Set the time period "By Statement"
6. Set the statement
7. Click the "Export" button.

The filename date will be the download date, not the statement date.

M parser/amex/types.go => parser/amex/types.go +1 -0
@@ 56,6 56,7 @@ func (c *CityState) UnmarshalText(data []byte) error {
		c.State = s[1]
	}

	// TODO: won't fail if only one part, expected?
	if len(s) > 2 {
		return fmt.Errorf("expected two parts for City/State, got %d (%v, %s)", len(s), s, string(data))
	}

M parser/personal/parse_test.go => parser/personal/parse_test.go +0 -1
@@ 33,5 33,4 @@ date    	amount	media	description
	for i, v := range raw {
		assert.Equal(txns[i], v)
	}

}

M parser/util/date.go => parser/util/date.go +2 -0
@@ 14,6 14,7 @@ func (d *DateISO) UnmarshalText(data []byte) error {
	}

	d.Time = t

	return nil
}



@@ 28,5 29,6 @@ func (d *DateUS) UnmarshalText(data []byte) error {
	}

	d.Time = t

	return nil
}