Commit Graph

113 Commits

Author SHA1 Message Date
Andrew Bates 57cca82b33 changes ofxgo.Client to ofxgo.BasicClient
Updates code to accomodate 94a77ac754
2019-01-12 20:27:20 -05:00
Aaron Lindsay be8cec2179 gnucash: Successfully import currencies labeled CURRENCY
Older versions of gnucash labeled currencies as ISO4217, but it appears
the latest label them CURRENCY instead.
2018-05-09 21:00:55 -04:00
Aaron Lindsay a10f3105d9 db/transactions: Properly capitalize 'Date' column name 2017-12-15 09:13:04 -05:00
Aaron Lindsay 0372f0488f Move balance calculations into DBs 2017-12-12 20:55:49 -05:00
Aaron Lindsay a357d38eee Store currency/security values/prices using big.Rat natively
This adds 'shadow' types used only by the store/db internal package whch
handle converting these types to their DB-equivalent values. This change
should allow reports to be generated significantly faster since it
allows a large portion of the computation to be shifted to the database
engines.
2017-12-12 19:50:38 -05:00
Aaron Lindsay 483adb5c56 Don't leak non-interface type from database module
This removes the last place I used *db.DbStore instead of store.Store
outside the 'db' package.
2017-12-10 21:02:17 -05:00
Aaron Lindsay d5bea1102d Split Lua reports into own package 2017-12-10 20:53:57 -05:00
Aaron Lindsay ac8afec6c1 Add tests for reading config files 2017-12-09 21:19:54 -05:00
Aaron Lindsay e52719c3f7 Split integration tests into their own package 2017-12-09 20:01:17 -05:00
Aaron Lindsay c4d2fe27e6 Take unexported database methods 'private' 2017-12-09 06:06:20 -05:00
Aaron Lindsay 32aef11da5 Finish 'store' separation 2017-12-09 05:56:45 -05:00
Aaron Lindsay af97f92df5 db: Paper over MySQL returning count=0 for unchanged updates 2017-12-09 05:47:25 -05:00
Aaron Lindsay da7e025509 Move splits/transactions to store 2017-12-08 21:27:03 -05:00
Aaron Lindsay 61676598dd Move prices to store 2017-12-07 21:05:55 -05:00
Aaron Lindsay 3326c3b292 Move accounts to store 2017-12-07 20:47:55 -05:00
Aaron Lindsay bec5152e53 Move users and securities to store 2017-12-07 20:08:43 -05:00
Aaron Lindsay c452984f23 Lay groundwork and move sessions to 'store' 2017-12-07 05:25:35 -05:00
Aaron Lindsay 147a00e429 Only serve over HTTPS, optionally auto-generating certificates
Because MoneyGo requires sending passwords and session cookies, we
should never serve over HTTP. While we're at it, make it more convenient
for folks to test this out by adding a config option to auto-generate
self-signed certificates.
2017-12-05 21:02:49 -05:00
Aaron Lindsay 3e3038295d Split reports into models 2017-12-05 05:59:44 -05:00
Aaron Lindsay 5f296e8669 Split prices into models 2017-12-05 05:59:44 -05:00
Aaron Lindsay 128ea57c4d Split accounts and transactions into models 2017-12-05 05:59:44 -05:00
Aaron Lindsay f72c86ef58 Split securities into models 2017-12-05 05:59:44 -05:00
Aaron Lindsay 3f4d6d15a1 Split Sessions into models 2017-12-05 05:59:44 -05:00
Aaron Lindsay e70be1647c Begin splitting models from handlers with User 2017-12-05 05:59:44 -05:00
Aaron Lindsay ffc8602336 testing: Add another brokerage account OFX import test 2017-12-01 21:21:55 -05:00
Aaron Lindsay 05fdaaeb42 testing: Add checks for OFX investment balances
Also fix a "bug" uncovered, relating to at least one FI's providing
unexpected signs for some OFX fields.
2017-11-29 19:59:02 -05:00
Aaron Lindsay 30d4515780 testing: Add initial OFX investment import tests
Also fix up a "bug" caused by financial institutions not deciding on
which sign to use for an OFX field...
2017-11-28 21:25:50 -05:00
Aaron Lindsay 238809cd46 testing: Add initial OFX credit card import test 2017-11-28 20:14:38 -05:00
Aaron Lindsay d656f15e84 testing: Ensure account balance is correct after OFX import 2017-11-26 21:01:26 -05:00
Aaron Lindsay aa8924243e Add initial OFX import test
So far, this only checks to ensure that the import doesn't return an
error code.
2017-11-26 14:42:05 -05:00
Aaron Lindsay 7a23739a0b gnucash: Ensure error is properly checked 2017-11-25 21:05:57 -05:00
Aaron Lindsay d9ecaa530b gofmt 2017-11-25 21:01:48 -05:00
Aaron Lindsay 9cd2724416 Remove unused WriteError function 2017-11-23 17:57:36 -05:00
Aaron Lindsay 0aa8ac63ab testing: Test importing Gnucash security prices 2017-11-22 21:37:45 -05:00
Aaron Lindsay 947db54433 testing: Check more post-gnucash import account balances 2017-11-22 20:59:11 -05:00
Aaron Lindsay d65019f55c gnucash tests: Check for the presence of more accounts and their trees 2017-11-21 05:58:43 -05:00
Aaron Lindsay b06b409cd5 Add initial gnucash importing test
This is woefully incomplete, but tests to make sure at least one balance
on one account is correct...
2017-11-21 05:31:07 -05:00
Aaron Lindsay 4d0b33efee securities: Don't use 'precision', a MySQL reserved word, in DB 2017-11-21 05:31:07 -05:00
Aaron Lindsay ac5826daca Add expiration and creation times to sessions
Check expiration time when fetching sessions from cookies
2017-11-19 06:36:52 -05:00
Aaron Lindsay 216d413c15 Ensure we don't have duplicate session secrets 2017-11-18 21:20:23 -05:00
Aaron Lindsay e4e474caf2 Remove outdated comment 2017-11-17 21:02:25 -05:00
Aaron Lindsay 04d85cd681 Fix gorp to internally lowercase fields for Postgres
Postgres folds all unquoted column names to lowercase, and doing this
allows that to work nicely without screwing up the queries for the other
database engines.
2017-11-17 21:01:06 -05:00
Aaron Lindsay d5ca4395ac Move to gorp v2
This removes the following error, caused by the MySQL Dialect using a
'varchar' for all columns over 256 characters in length, instead of
'text' for the largest:

  2017/11/17 22:41:33 common_test.go:208: Error 1074: Column length too big for column 'Lua' (max = 21844); use BLOB or TEXT instead
2017-11-17 19:53:56 -05:00
Aaron Lindsay b2359e1267 Fixup account transactions to work for both Postgres and MySQL 2017-11-17 05:50:00 -05:00
Aaron Lindsay 50dd7b1d26 testing: Use Time.Equal for date comparisons
Postgres actually preserves the timezone, unlike sqlite and mysql...
2017-11-17 05:20:10 -05:00
Aaron Lindsay 00e1e899c0 Rebind all SQL queries to acommodate Postgres 2017-11-17 05:09:16 -05:00
Aaron Lindsay 73cedfd700 testing: Allow DB engine and DSN to be selected with environment variables 2017-11-16 19:42:58 -05:00
Aaron Lindsay c48c50d2c5 API: Move prices under securities
For example, instead of GETting /prices/5 to query a price with ID 5,
you now must GET /securities/2/prices/5 (assuming price 5's SecurityId
is 2)
2017-11-16 19:32:30 -05:00
Aaron Lindsay 5a6be5a07b Stop using form elements for API
Just send the JSON as the request body
2017-11-13 20:48:19 -05:00
Aaron Lindsay 9624f0c5bc Move to a consistent way of handling IDs in URLs 2017-11-12 21:15:00 -05:00