[migrations] Fix account import date detection when no operations with importDate
I'll add a test but this fixes this:
[2] [2019-06-07T09:20:51.077] [INFO] models/migrations - Ensure "importDate" field is present in accounts.
[2] [2019-06-07T09:20:51.105] [INFO] models/migrations - manualaccount-randomid has no importDate.
[2] (node:1716) UnhandledPromiseRejectionWarning: RangeError: Invalid time value
[2] at Date.toISOString (<anonymous>)
[2] at clone (/home/user/kresus/app/node_modules/pouchdb/lib/index.js:70:19)
[2] at clone (/home/user/kresus/app/node_modules/pouchdb/lib/index.js:85:19)
[2] at clone (/home/user/kresus/app/node_modules/pouchdb/lib/index.js:62:22)
[2] at PouchDB.<anonymous> (/home/user/kresus/app/node_modules/pouchdb/lib/index.js:112:12)
[2] at PouchDB.put (/home/user/kresus/app/node_modules/argsarray/index.js:14:18)
[2] at /home/user/kresus/app/node_modules/cozydb/lib/pouchmodel.js:119:40
[2] at /home/user/kresus/app/node_modules/pouchdb/lib/index.js:140:9
[2] at process._tickCallback (internal/process/next_tick.js:68:7)
[2] (node:1716) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
when none of the operations imported have a importDate
field (but do have a date
field):
{
"data": {
"accesses": [
{
"vendorId": "manual",
"login": "whatever-manual-acc--does-not-care",
"customLabel": "Optional custom label",
"id": 0
}
],
"accounts": [
{
"id": 0,
"vendorId": "manual",
"accessId": 0,
"vendorAccountId": "manualaccount-randomid",
"type": "account-type.checking",
"initialBalance": 0,
"label": "Compte Courant",
"iban": "FR4830066645148131544778523",
"currency": "EUR"
}
],
"categories": [
{
"label": "Groceries",
"color": "#1b9d68",
"id": 0
},
{
"label": "Books",
"color": "#b562bf",
"id": 1
},
{
"label": "Taxes",
"color": "#ff0000",
"id": 2
},
{
"label": "Misc",
"color": "#00ff00",
"id": 3
}
],
"operations": [
{
"accountId": 0,
"categoryId": 0,
"type": "type.card",
"label": "Wholemart",
"rawLabel": "card 07/07/2019 wholemart",
"customLabel": "Food",
"date": "2019-07-07T00:00:00.000Z",
"amount": -83.8
},
{
"accountId": 0,
"categoryId": 0,
"type": "type.card",
"label": "Wholemart",
"rawLabel": "card 09/07/2019 wholemart",
"customLabel": "Food & stuff",
"date": "2019-07-09T00:00:00.000Z",
"amount": -60.8
},
{
"accountId": 0,
"categoryId": 1,
"type": "type.card",
"label": "amazon payments",
"rawLabel": "carte 19/07/2019 amazon payments",
"customLabel": "1984 - George Orwell",
"date": "2019-07-19T00:00:00.000Z",
"amount": -20
},
{
"accountId": 0,
"type": "type.transfer",
"label": "SEPA m. john doe 123457689 rent",
"rawLabel": "transfer to m. john doe 123457689 rent",
"date": "2019-07-27T00:00:00.000Z",
"amount": -500
},
{
"accountId": 0,
"categoryId": 2,
"type": "type.order",
"label": "taxes public department: fr123abc456",
"rawLabel": "direct debit sepa taxes public department: fr123abc456",
"date": "2019-08-17T00:00:00.000Z",
"amount": -150
},
{
"accountId": 0,
"categoryId": 3,
"type": "type.withdrawal",
"label": "ATM my pretty town center",
"rawLabel": "debit ATM 18/08/2019 ATM my pretty town center",
"date": "2019-08-19T00:00:00.000Z",
"amount": -20
},
{
"accountId": 0,
"type": "type.bankfee",
"rawLabel": "commission on non euro buy 0.65eur",
"date": "2019-08-22T00:00:00.000Z",
"amount": -0.65
}
]
}
}
Edited by Nicolas Frandeboeuf