From 1eaea6c7ed1cfbf6c3ef4d1ebfb6069a4739d913 Mon Sep 17 00:00:00 2001 From: Oliver Boehlk Date: Thu, 30 Apr 2020 20:45:46 +0200 Subject: [PATCH 1/3] use cross-env for plattform-independet env --- backend/package-lock.json | 52 +++++++++++++++++++++++++++++++++++++++ backend/package.json | 7 ++++-- 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index 3d53298..37d7d2c 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -280,6 +280,58 @@ "capture-stack-trace": "^1.0.0" } }, + "cross-env": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", diff --git a/backend/package.json b/backend/package.json index 28fb4bc..536bbf7 100644 --- a/backend/package.json +++ b/backend/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "start": "node index.js", - "debug": "nodemon index.js", + "debug": "cross-env NODE_ENV=debug nodemon index.js", "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Oliver Boehlk", @@ -23,5 +23,8 @@ "nodemon": "^2.0.2", "passport": "^0.4.1", "passport-local": "^1.0.0" + }, + "devDependencies": { + "cross-env": "^7.0.2" } -} +} \ No newline at end of file From 43d04e0a32a08d446f2da1307a7dcd89edc87d81 Mon Sep 17 00:00:00 2001 From: Oliver Boehlk Date: Thu, 30 Apr 2020 20:46:01 +0200 Subject: [PATCH 2/3] updated mock data with quality --- backend/mockdata-test/day.json | 1530 ++++++++++++++++++++++---------- 1 file changed, 1058 insertions(+), 472 deletions(-) diff --git a/backend/mockdata-test/day.json b/backend/mockdata-test/day.json index 086eb08..6a830c4 100644 --- a/backend/mockdata-test/day.json +++ b/backend/mockdata-test/day.json @@ -1,946 +1,1532 @@ [ { - "time": "2020-04-16T22:00:09.000Z", - "price": 0.268 + "time": "2020-04-29T17:00:04.000Z", + "price": 0.24, + "quality": 0 }, { - "time": "2020-04-16T22:05:05.000Z", - "price": 0.268 + "time": "2020-04-29T17:00:04.000Z", + "price": 0.244, + "quality": 1 }, { - "time": "2020-04-16T22:10:04.000Z", - "price": 0.268 + "time": "2020-04-29T17:00:04.000Z", + "price": 0.244, + "quality": 2 }, { - "time": "2020-04-16T22:15:09.000Z", - "price": 0.27 + "time": "2020-04-29T17:00:04.000Z", + "price": 0.243, + "quality": 3 }, { - "time": "2020-04-16T22:20:12.000Z", - "price": 0.264 + "time": "2020-04-29T17:00:04.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-16T22:25:11.000Z", - "price": 0.268 + "time": "2020-04-29T17:00:04.000Z", + "price": 0.245, + "quality": 5 }, { - "time": "2020-04-16T22:30:12.000Z", - "price": 0.27 + "time": "2020-04-29T17:30:03.000Z", + "price": 0.244, + "quality": 0 }, { - "time": "2020-04-16T22:35:07.000Z", - "price": 0.271 + "time": "2020-04-29T17:30:03.000Z", + "price": 0.245, + "quality": 1 }, { - "time": "2020-04-16T22:40:08.000Z", - "price": 0.263 + "time": "2020-04-29T17:30:03.000Z", + "price": 0.246, + "quality": 2 }, { - "time": "2020-04-16T22:45:12.000Z", - "price": 0.26 + "time": "2020-04-29T17:30:03.000Z", + "price": 0.248, + "quality": 3 }, { - "time": "2020-04-16T22:50:14.000Z", - "price": 0.268 + "time": "2020-04-29T17:30:03.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-16T22:55:24.000Z", - "price": 0.267 + "time": "2020-04-29T17:30:03.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-16T23:00:21.000Z", - "price": 0.269 + "time": "2020-04-29T18:00:03.000Z", + "price": 0.244, + "quality": 0 }, { - "time": "2020-04-16T23:05:05.000Z", - "price": 0.259 + "time": "2020-04-29T18:00:03.000Z", + "price": 0.246, + "quality": 1 }, { - "time": "2020-04-16T23:10:23.000Z", - "price": 0.272 + "time": "2020-04-29T18:00:03.000Z", + "price": 0.247, + "quality": 2 }, { - "time": "2020-04-16T23:15:11.000Z", - "price": 0.272 + "time": "2020-04-29T18:00:03.000Z", + "price": 0.249, + "quality": 3 }, { - "time": "2020-04-16T23:20:27.000Z", - "price": 0.273 + "time": "2020-04-29T18:00:03.000Z", + "price": 0.244, + "quality": 4 }, { - "time": "2020-04-16T23:25:20.000Z", - "price": 0.272 + "time": "2020-04-29T18:00:03.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-16T23:30:16.000Z", - "price": 0.271 + "time": "2020-04-29T18:30:03.000Z", + "price": 0.24, + "quality": 0 }, { - "time": "2020-04-16T23:35:04.000Z", - "price": 0.274 + "time": "2020-04-29T18:30:03.000Z", + "price": 0.248, + "quality": 1 }, { - "time": "2020-04-16T23:40:05.000Z", - "price": 0.271 + "time": "2020-04-29T18:30:03.000Z", + "price": 0.247, + "quality": 2 }, { - "time": "2020-04-16T23:45:09.000Z", - "price": 0.265 + "time": "2020-04-29T18:30:03.000Z", + "price": 0.249, + "quality": 3 }, { - "time": "2020-04-16T23:50:12.000Z", - "price": 0.274 + "time": "2020-04-29T18:30:03.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-16T23:55:13.000Z", - "price": 0.27 + "time": "2020-04-29T18:30:03.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T00:00:06.000Z", - "price": 0.25 + "time": "2020-04-29T19:00:04.000Z", + "price": 0.247, + "quality": 0 }, { - "time": "2020-04-17T00:05:13.000Z", - "price": 0.272 + "time": "2020-04-29T19:00:04.000Z", + "price": 0.246, + "quality": 1 }, { - "time": "2020-04-17T00:10:27.000Z", - "price": 0.272 + "time": "2020-04-29T19:00:04.000Z", + "price": 0.248, + "quality": 2 }, { - "time": "2020-04-17T00:15:25.000Z", - "price": 0.27 + "time": "2020-04-29T19:00:04.000Z", + "price": 0.249, + "quality": 3 }, { - "time": "2020-04-17T00:20:23.000Z", - "price": 0.27 + "time": "2020-04-29T19:00:04.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T00:25:07.000Z", - "price": 0.27 + "time": "2020-04-29T19:00:04.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T00:30:17.000Z", - "price": 0.259 + "time": "2020-04-29T19:30:04.000Z", + "price": 0.244, + "quality": 0 }, { - "time": "2020-04-17T00:35:07.000Z", - "price": 0.27 + "time": "2020-04-29T19:30:04.000Z", + "price": 0.245, + "quality": 1 }, { - "time": "2020-04-17T00:40:04.000Z", - "price": 0.263 + "time": "2020-04-29T19:30:04.000Z", + "price": 0.248, + "quality": 2 }, { - "time": "2020-04-17T00:45:05.000Z", - "price": 0.269 + "time": "2020-04-29T19:30:04.000Z", + "price": 0.248, + "quality": 3 }, { - "time": "2020-04-17T00:50:06.000Z", - "price": 0.269 + "time": "2020-04-29T19:30:04.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T00:55:13.000Z", - "price": 0.268 + "time": "2020-04-29T19:30:04.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T01:00:10.000Z", - "price": 0.268 + "time": "2020-04-29T20:00:04.000Z", + "price": 0.243, + "quality": 0 }, { - "time": "2020-04-17T01:05:10.000Z", - "price": 0.269 + "time": "2020-04-29T20:00:04.000Z", + "price": 0.247, + "quality": 1 }, { - "time": "2020-04-17T01:10:28.000Z", - "price": 0.268 + "time": "2020-04-29T20:00:04.000Z", + "price": 0.248, + "quality": 2 }, { - "time": "2020-04-17T01:15:24.000Z", - "price": 0.268 + "time": "2020-04-29T20:00:04.000Z", + "price": 0.249, + "quality": 3 }, { - "time": "2020-04-17T01:20:22.000Z", - "price": 0.268 + "time": "2020-04-29T20:00:04.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T01:25:32.000Z", - "price": 0.264 + "time": "2020-04-29T20:00:04.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T01:30:44.000Z", - "price": 0.26 + "time": "2020-04-29T20:30:03.000Z", + "price": 0.245, + "quality": 0 }, { - "time": "2020-04-17T01:35:04.000Z", - "price": 0.262 + "time": "2020-04-29T20:30:03.000Z", + "price": 0.248, + "quality": 1 }, { - "time": "2020-04-17T01:40:14.000Z", - "price": 0.265 + "time": "2020-04-29T20:30:03.000Z", + "price": 0.249, + "quality": 2 }, { - "time": "2020-04-17T01:45:07.000Z", - "price": 0.266 + "time": "2020-04-29T20:30:03.000Z", + "price": 0.248, + "quality": 3 }, { - "time": "2020-04-17T01:50:03.000Z", - "price": 0.267 + "time": "2020-04-29T20:30:03.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T01:55:04.000Z", - "price": 0.259 + "time": "2020-04-29T20:30:03.000Z", + "price": 0.255, + "quality": 5 }, { - "time": "2020-04-17T02:00:04.000Z", - "price": 0.269 + "time": "2020-04-29T21:00:04.000Z", + "price": 0.239, + "quality": 0 }, { - "time": "2020-04-17T02:05:46.000Z", - "price": 0.269 + "time": "2020-04-29T21:00:04.000Z", + "price": 0.247, + "quality": 1 }, { - "time": "2020-04-17T02:10:16.000Z", - "price": 0.269 + "time": "2020-04-29T21:00:04.000Z", + "price": 0.244, + "quality": 2 }, { - "time": "2020-04-17T02:17:46.000Z", - "price": 0.27 + "time": "2020-04-29T21:00:04.000Z", + "price": 0.25, + "quality": 3 }, { - "time": "2020-04-17T02:20:23.000Z", - "price": 0.271 + "time": "2020-04-29T21:00:04.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T02:25:14.000Z", - "price": 0.271 + "time": "2020-04-29T21:00:04.000Z", + "price": 0.245, + "quality": 5 }, { - "time": "2020-04-17T02:30:07.000Z", - "price": 0.267 + "time": "2020-04-29T21:30:03.000Z", + "price": 0.245, + "quality": 0 }, { - "time": "2020-04-17T02:35:05.000Z", - "price": 0.269 + "time": "2020-04-29T21:30:03.000Z", + "price": 0.23, + "quality": 1 }, { - "time": "2020-04-17T02:40:07.000Z", - "price": 0.27 + "time": "2020-04-29T21:30:03.000Z", + "price": 0.246, + "quality": 2 }, { - "time": "2020-04-17T02:45:10.000Z", - "price": 0.272 + "time": "2020-04-29T21:30:03.000Z", + "price": 0.25, + "quality": 3 }, { - "time": "2020-04-17T02:50:08.000Z", - "price": 0.267 + "time": "2020-04-29T21:30:03.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T02:55:04.000Z", - "price": 0.267 + "time": "2020-04-29T21:30:03.000Z", + "price": 0.255, + "quality": 5 }, { - "time": "2020-04-17T03:00:06.000Z", - "price": 0.27 + "time": "2020-04-29T22:00:06.000Z", + "price": 0.246, + "quality": 0 }, { - "time": "2020-04-17T03:05:07.000Z", - "price": 0.26 + "time": "2020-04-29T22:00:06.000Z", + "price": 0.248, + "quality": 1 }, { - "time": "2020-04-17T03:10:04.000Z", - "price": 0.271 + "time": "2020-04-29T22:00:06.000Z", + "price": 0.248, + "quality": 2 }, { - "time": "2020-04-17T03:15:06.000Z", - "price": 0.271 + "time": "2020-04-29T22:00:06.000Z", + "price": 0.249, + "quality": 3 }, { - "time": "2020-04-17T03:20:08.000Z", - "price": 0.271 + "time": "2020-04-29T22:00:06.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T03:25:05.000Z", - "price": 0.267 + "time": "2020-04-29T22:00:06.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T03:30:13.000Z", - "price": 0.27 + "time": "2020-04-29T22:30:04.000Z", + "price": 0.247, + "quality": 0 }, { - "time": "2020-04-17T03:35:08.000Z", - "price": 0.271 + "time": "2020-04-29T22:30:04.000Z", + "price": 0.246, + "quality": 1 }, { - "time": "2020-04-17T03:40:04.000Z", - "price": 0.271 + "time": "2020-04-29T22:30:04.000Z", + "price": 0.249, + "quality": 2 }, { - "time": "2020-04-17T03:45:10.000Z", - "price": 0.27 + "time": "2020-04-29T22:30:04.000Z", + "price": 0.251, + "quality": 3 }, { - "time": "2020-04-17T03:50:07.000Z", - "price": 0.26 + "time": "2020-04-29T22:30:04.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T03:55:08.000Z", - "price": 0.27 + "time": "2020-04-29T22:30:04.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T04:00:04.000Z", - "price": 0.265 + "time": "2020-04-29T23:00:05.000Z", + "price": 0.247, + "quality": 0 }, { - "time": "2020-04-17T04:05:05.000Z", - "price": 0.267 + "time": "2020-04-29T23:00:05.000Z", + "price": 0.247, + "quality": 1 }, { - "time": "2020-04-17T04:10:08.000Z", - "price": 0.266 + "time": "2020-04-29T23:00:05.000Z", + "price": 0.249, + "quality": 2 }, { - "time": "2020-04-17T04:15:14.000Z", - "price": 0.267 + "time": "2020-04-29T23:00:05.000Z", + "price": 0.25, + "quality": 3 }, { - "time": "2020-04-17T04:20:07.000Z", - "price": 0.24 + "time": "2020-04-29T23:00:05.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T04:25:19.000Z", - "price": 0.27 + "time": "2020-04-29T23:00:05.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T04:30:07.000Z", - "price": 0.271 + "time": "2020-04-29T23:30:04.000Z", + "price": 0.247, + "quality": 0 }, { - "time": "2020-04-17T04:35:04.000Z", - "price": 0.269 + "time": "2020-04-29T23:30:04.000Z", + "price": 0.247, + "quality": 1 }, { - "time": "2020-04-17T04:40:07.000Z", - "price": 0.269 + "time": "2020-04-29T23:30:04.000Z", + "price": 0.248, + "quality": 2 }, { - "time": "2020-04-17T04:45:06.000Z", - "price": 0.268 + "time": "2020-04-29T23:30:04.000Z", + "price": 0.25, + "quality": 3 }, { - "time": "2020-04-17T04:50:08.000Z", - "price": 0.269 + "time": "2020-04-29T23:30:04.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T04:55:08.000Z", - "price": 0.269 + "time": "2020-04-29T23:30:04.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T05:00:05.000Z", - "price": 0.265 + "time": "2020-04-30T00:00:04.000Z", + "price": 0.246, + "quality": 0 }, { - "time": "2020-04-17T05:05:06.000Z", - "price": 0.267 + "time": "2020-04-30T00:00:04.000Z", + "price": 0.247, + "quality": 1 }, { - "time": "2020-04-17T05:10:05.000Z", - "price": 0.264 + "time": "2020-04-30T00:00:04.000Z", + "price": 0.247, + "quality": 2 }, { - "time": "2020-04-17T05:15:07.000Z", - "price": 0.266 + "time": "2020-04-30T00:00:04.000Z", + "price": 0.25, + "quality": 3 }, { - "time": "2020-04-17T05:20:06.000Z", - "price": 0.269 + "time": "2020-04-30T00:00:04.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T05:25:08.000Z", - "price": 0.272 + "time": "2020-04-30T00:00:04.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T05:30:07.000Z", - "price": 0.273 + "time": "2020-04-30T00:30:04.000Z", + "price": 0.246, + "quality": 0 }, { - "time": "2020-04-17T05:35:06.000Z", - "price": 0.274 + "time": "2020-04-30T00:30:04.000Z", + "price": 0.248, + "quality": 1 }, { - "time": "2020-04-17T05:40:06.000Z", - "price": 0.274 + "time": "2020-04-30T00:30:04.000Z", + "price": 0.25, + "quality": 2 }, { - "time": "2020-04-17T05:45:06.000Z", - "price": 0.272 + "time": "2020-04-30T00:30:04.000Z", + "price": 0.251, + "quality": 3 }, { - "time": "2020-04-17T05:50:08.000Z", - "price": 0.277 + "time": "2020-04-30T00:30:04.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T05:55:09.000Z", - "price": 0.275 + "time": "2020-04-30T00:30:04.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T06:00:11.000Z", - "price": 0.275 + "time": "2020-04-30T01:00:04.000Z", + "price": 0.242, + "quality": 0 }, { - "time": "2020-04-17T06:05:13.000Z", - "price": 0.274 + "time": "2020-04-30T01:00:04.000Z", + "price": 0.245, + "quality": 1 }, { - "time": "2020-04-17T06:10:17.000Z", - "price": 0.272 + "time": "2020-04-30T01:00:04.000Z", + "price": 0.243, + "quality": 2 }, { - "time": "2020-04-17T06:15:09.000Z", - "price": 0.272 + "time": "2020-04-30T01:00:04.000Z", + "price": 0.251, + "quality": 3 }, { - "time": "2020-04-17T06:20:07.000Z", - "price": 0.26 + "time": "2020-04-30T01:00:04.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T06:25:07.000Z", - "price": 0.269 + "time": "2020-04-30T01:00:04.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T06:30:07.000Z", - "price": 0.268 + "time": "2020-04-30T01:30:04.000Z", + "price": 0.246, + "quality": 0 }, { - "time": "2020-04-17T06:35:07.000Z", - "price": 0.272 + "time": "2020-04-30T01:30:04.000Z", + "price": 0.246, + "quality": 1 }, { - "time": "2020-04-17T06:40:05.000Z", - "price": 0.273 + "time": "2020-04-30T01:30:04.000Z", + "price": 0.247, + "quality": 2 }, { - "time": "2020-04-17T06:45:05.000Z", - "price": 0.272 + "time": "2020-04-30T01:30:04.000Z", + "price": 0.25, + "quality": 3 }, { - "time": "2020-04-17T06:50:07.000Z", - "price": 0.272 + "time": "2020-04-30T01:30:04.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T06:55:08.000Z", - "price": 0.27 + "time": "2020-04-30T01:30:04.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T07:00:05.000Z", - "price": 0.271 + "time": "2020-04-30T02:00:06.000Z", + "price": 0.247, + "quality": 0 }, { - "time": "2020-04-17T07:05:05.000Z", - "price": 0.273 + "time": "2020-04-30T02:00:06.000Z", + "price": 0.247, + "quality": 1 }, { - "time": "2020-04-17T07:10:06.000Z", - "price": 0.27 + "time": "2020-04-30T02:00:06.000Z", + "price": 0.25, + "quality": 2 }, { - "time": "2020-04-17T07:15:07.000Z", - "price": 0.268 + "time": "2020-04-30T02:00:06.000Z", + "price": 0.25, + "quality": 3 }, { - "time": "2020-04-17T07:20:06.000Z", - "price": 0.271 + "time": "2020-04-30T02:00:06.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T07:25:06.000Z", - "price": 0.27 + "time": "2020-04-30T02:00:06.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T07:30:07.000Z", - "price": 0.27 + "time": "2020-04-30T02:30:04.000Z", + "price": 0.243, + "quality": 0 }, { - "time": "2020-04-17T07:35:10.000Z", - "price": 0.268 + "time": "2020-04-30T02:30:04.000Z", + "price": 0.244, + "quality": 1 }, { - "time": "2020-04-17T07:40:09.000Z", - "price": 0.268 + "time": "2020-04-30T02:30:04.000Z", + "price": 0.25, + "quality": 2 }, { - "time": "2020-04-17T07:45:06.000Z", - "price": 0.273 + "time": "2020-04-30T02:30:04.000Z", + "price": 0.252, + "quality": 3 }, { - "time": "2020-04-17T07:50:07.000Z", - "price": 0.269 + "time": "2020-04-30T02:30:04.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T07:55:07.000Z", - "price": 0.274 + "time": "2020-04-30T02:30:04.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T08:00:09.000Z", - "price": 0.272 + "time": "2020-04-30T03:00:04.000Z", + "price": 0.245, + "quality": 0 }, { - "time": "2020-04-17T08:05:08.000Z", - "price": 0.27 + "time": "2020-04-30T03:00:04.000Z", + "price": 0.248, + "quality": 1 }, { - "time": "2020-04-17T08:10:07.000Z", - "price": 0.268 + "time": "2020-04-30T03:00:04.000Z", + "price": 0.249, + "quality": 2 }, { - "time": "2020-04-17T08:15:07.000Z", - "price": 0.269 + "time": "2020-04-30T03:00:04.000Z", + "price": 0.247, + "quality": 3 }, { - "time": "2020-04-17T08:20:06.000Z", - "price": 0.265 + "time": "2020-04-30T03:00:04.000Z", + "price": 0.254, + "quality": 4 }, { - "time": "2020-04-17T08:25:05.000Z", - "price": 0.265 + "time": "2020-04-30T03:00:04.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T08:30:07.000Z", - "price": 0.26 + "time": "2020-04-30T03:30:03.000Z", + "price": 0.243, + "quality": 0 }, { - "time": "2020-04-17T08:35:07.000Z", - "price": 0.26 + "time": "2020-04-30T03:30:03.000Z", + "price": 0.249, + "quality": 1 }, { - "time": "2020-04-17T08:40:09.000Z", - "price": 0.261 + "time": "2020-04-30T03:30:03.000Z", + "price": 0.249, + "quality": 2 }, { - "time": "2020-04-17T08:45:10.000Z", - "price": 0.26 + "time": "2020-04-30T03:30:03.000Z", + "price": 0.252, + "quality": 3 }, { - "time": "2020-04-17T08:50:10.000Z", - "price": 0.264 + "time": "2020-04-30T03:30:03.000Z", + "price": 0.252, + "quality": 4 }, { - "time": "2020-04-17T08:55:11.000Z", - "price": 0.265 + "time": "2020-04-30T03:30:03.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T09:00:08.000Z", - "price": 0.265 + "time": "2020-04-30T04:00:04.000Z", + "price": 0.242, + "quality": 0 }, { - "time": "2020-04-17T09:05:09.000Z", - "price": 0.265 + "time": "2020-04-30T04:00:04.000Z", + "price": 0.244, + "quality": 1 }, { - "time": "2020-04-17T09:10:07.000Z", - "price": 0.265 + "time": "2020-04-30T04:00:04.000Z", + "price": 0.25, + "quality": 2 }, { - "time": "2020-04-17T09:15:09.000Z", - "price": 0.272 + "time": "2020-04-30T04:00:04.000Z", + "price": 0.251, + "quality": 3 }, { - "time": "2020-04-17T09:20:06.000Z", - "price": 0.265 + "time": "2020-04-30T04:00:04.000Z", + "price": 0.252, + "quality": 4 }, { - "time": "2020-04-17T09:25:09.000Z", - "price": 0.265 + "time": "2020-04-30T04:00:04.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T09:30:06.000Z", - "price": 0.265 + "time": "2020-04-30T04:30:04.000Z", + "price": 0.241, + "quality": 0 }, { - "time": "2020-04-17T09:35:15.000Z", - "price": 0.265 + "time": "2020-04-30T04:30:04.000Z", + "price": 0.243, + "quality": 1 }, { - "time": "2020-04-17T09:40:08.000Z", - "price": 0.265 + "time": "2020-04-30T04:30:04.000Z", + "price": 0.242, + "quality": 2 }, { - "time": "2020-04-17T09:45:07.000Z", - "price": 0.269 + "time": "2020-04-30T04:30:04.000Z", + "price": 0.25, + "quality": 3 }, { - "time": "2020-04-17T09:50:07.000Z", - "price": 0.265 + "time": "2020-04-30T04:30:04.000Z", + "price": 0.252, + "quality": 4 }, { - "time": "2020-04-17T09:55:05.000Z", - "price": 0.264 + "time": "2020-04-30T04:30:04.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T10:00:09.000Z", - "price": 0.262 + "time": "2020-04-30T05:00:04.000Z", + "price": 0.239, + "quality": 0 }, { - "time": "2020-04-17T10:05:11.000Z", - "price": 0.262 + "time": "2020-04-30T05:00:04.000Z", + "price": 0.242, + "quality": 1 }, { - "time": "2020-04-17T10:10:08.000Z", - "price": 0.262 + "time": "2020-04-30T05:00:04.000Z", + "price": 0.25, + "quality": 2 }, { - "time": "2020-04-17T10:15:06.000Z", - "price": 0.264 + "time": "2020-04-30T05:00:04.000Z", + "price": 0.25, + "quality": 3 }, { - "time": "2020-04-17T10:20:05.000Z", - "price": 0.267 + "time": "2020-04-30T05:00:04.000Z", + "price": 0.252, + "quality": 4 }, { - "time": "2020-04-17T10:25:07.000Z", - "price": 0.271 + "time": "2020-04-30T05:00:04.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T10:30:06.000Z", - "price": 0.264 + "time": "2020-04-30T05:30:03.000Z", + "price": 0.24, + "quality": 0 }, { - "time": "2020-04-17T10:35:06.000Z", - "price": 0.265 + "time": "2020-04-30T05:30:03.000Z", + "price": 0.249, + "quality": 1 }, { - "time": "2020-04-17T10:40:05.000Z", - "price": 0.26 + "time": "2020-04-30T05:30:03.000Z", + "price": 0.244, + "quality": 2 }, { - "time": "2020-04-17T10:45:07.000Z", - "price": 0.271 + "time": "2020-04-30T05:30:03.000Z", + "price": 0.245, + "quality": 3 }, { - "time": "2020-04-17T10:50:08.000Z", - "price": 0.268 + "time": "2020-04-30T05:30:03.000Z", + "price": 0.25, + "quality": 4 }, { - "time": "2020-04-17T10:55:07.000Z", - "price": 0.266 + "time": "2020-04-30T05:30:03.000Z", + "price": 0.258, + "quality": 5 }, { - "time": "2020-04-17T11:00:06.000Z", - "price": 0.266 + "time": "2020-04-30T06:00:04.000Z", + "price": 0.245, + "quality": 0 }, { - "time": "2020-04-17T11:05:11.000Z", - "price": 0.268 + "time": "2020-04-30T06:00:04.000Z", + "price": 0.248, + "quality": 1 }, { - "time": "2020-04-17T11:10:06.000Z", - "price": 0.27 + "time": "2020-04-30T06:00:04.000Z", + "price": 0.247, + "quality": 2 }, { - "time": "2020-04-17T11:15:06.000Z", - "price": 0.268 + "time": "2020-04-30T06:00:04.000Z", + "price": 0.25, + "quality": 3 }, { - "time": "2020-04-17T11:20:08.000Z", - "price": 0.26 + "time": "2020-04-30T06:00:04.000Z", + "price": 0.26, + "quality": 4 }, { - "time": "2020-04-17T11:25:08.000Z", - "price": 0.26 + "time": "2020-04-30T06:00:04.000Z", + "price": 0.26, + "quality": 5 }, { - "time": "2020-04-17T11:30:08.000Z", - "price": 0.265 + "time": "2020-04-30T06:30:04.000Z", + "price": 0.245, + "quality": 0 }, { - "time": "2020-04-17T11:35:34.000Z", - "price": 0.27 + "time": "2020-04-30T06:30:04.000Z", + "price": 0.248, + "quality": 1 }, { - "time": "2020-04-17T11:40:07.000Z", - "price": 0.269 + "time": "2020-04-30T06:30:04.000Z", + "price": 0.249, + "quality": 2 }, { - "time": "2020-04-17T11:45:08.000Z", - "price": 0.269 + "time": "2020-04-30T06:30:04.000Z", + "price": 0.247, + "quality": 3 }, { - "time": "2020-04-17T11:50:06.000Z", - "price": 0.25 + "time": "2020-04-30T06:30:04.000Z", + "price": 0.26, + "quality": 4 }, { - "time": "2020-04-17T11:55:06.000Z", - "price": 0.26 + "time": "2020-04-30T06:30:04.000Z", + "price": 0.26, + "quality": 5 }, { - "time": "2020-04-17T12:00:06.000Z", - "price": 0.268 + "time": "2020-04-30T07:00:05.000Z", + "price": 0.244, + "quality": 0 }, { - "time": "2020-04-17T12:05:08.000Z", - "price": 0.268 + "time": "2020-04-30T07:00:05.000Z", + "price": 0.245, + "quality": 1 }, { - "time": "2020-04-17T12:10:09.000Z", - "price": 0.267 + "time": "2020-04-30T07:00:05.000Z", + "price": 0.246, + "quality": 2 }, { - "time": "2020-04-17T12:15:08.000Z", - "price": 0.26 + "time": "2020-04-30T07:00:05.000Z", + "price": 0.247, + "quality": 3 }, { - "time": "2020-04-17T12:20:07.000Z", - "price": 0.27 + "time": "2020-04-30T07:00:05.000Z", + "price": 0.259, + "quality": 4 }, { - "time": "2020-04-17T12:25:11.000Z", - "price": 0.269 + "time": "2020-04-30T07:00:05.000Z", + "price": 0.26, + "quality": 5 }, { - "time": "2020-04-17T12:30:08.000Z", - "price": 0.266 + "time": "2020-04-30T07:30:04.000Z", + "price": 0.242, + "quality": 0 }, { - "time": "2020-04-17T12:35:08.000Z", - "price": 0.264 + "time": "2020-04-30T07:30:04.000Z", + "price": 0.243, + "quality": 1 }, { - "time": "2020-04-17T12:40:09.000Z", - "price": 0.263 + "time": "2020-04-30T07:30:04.000Z", + "price": 0.248, + "quality": 2 }, { - "time": "2020-04-17T12:45:10.000Z", - "price": 0.26 + "time": "2020-04-30T07:30:04.000Z", + "price": 0.25, + "quality": 3 }, { - "time": "2020-04-17T12:50:09.000Z", - "price": 0.259 + "time": "2020-04-30T07:30:04.000Z", + "price": 0.259, + "quality": 4 }, { - "time": "2020-04-17T12:55:07.000Z", - "price": 0.26 + "time": "2020-04-30T07:30:04.000Z", + "price": 0.26, + "quality": 5 }, { - "time": "2020-04-17T13:00:04.000Z", - "price": 0.259 + "time": "2020-04-30T08:00:03.000Z", + "price": 0.242, + "quality": 0 }, { - "time": "2020-04-17T13:05:06.000Z", - "price": 0.263 + "time": "2020-04-30T08:00:03.000Z", + "price": 0.242, + "quality": 1 }, { - "time": "2020-04-17T13:10:06.000Z", - "price": 0.265 + "time": "2020-04-30T08:00:03.000Z", + "price": 0.244, + "quality": 2 }, { - "time": "2020-04-17T13:15:10.000Z", - "price": 0.266 + "time": "2020-04-30T08:00:03.000Z", + "price": 0.25, + "quality": 3 }, { - "time": "2020-04-17T13:20:05.000Z", - "price": 0.266 + "time": "2020-04-30T08:00:03.000Z", + "price": 0.259, + "quality": 4 }, { - "time": "2020-04-17T13:25:06.000Z", - "price": 0.262 + "time": "2020-04-30T08:00:03.000Z", + "price": 0.26, + "quality": 5 }, { - "time": "2020-04-17T13:30:09.000Z", - "price": 0.268 + "time": "2020-04-30T08:30:04.000Z", + "price": 0.24, + "quality": 0 }, { - "time": "2020-04-17T13:35:06.000Z", - "price": 0.268 + "time": "2020-04-30T08:30:04.000Z", + "price": 0.242, + "quality": 1 }, { - "time": "2020-04-17T13:40:08.000Z", - "price": 0.269 + "time": "2020-04-30T08:30:04.000Z", + "price": 0.244, + "quality": 2 }, { - "time": "2020-04-17T13:45:09.000Z", - "price": 0.268 + "time": "2020-04-30T08:30:04.000Z", + "price": 0.25, + "quality": 3 }, { - "time": "2020-04-17T13:50:06.000Z", - "price": 0.26 + "time": "2020-04-30T08:30:04.000Z", + "price": 0.259, + "quality": 4 }, { - "time": "2020-04-17T13:55:05.000Z", - "price": 0.26 + "time": "2020-04-30T08:30:04.000Z", + "price": 0.26, + "quality": 5 }, { - "time": "2020-04-17T14:00:07.000Z", - "price": 0.264 + "time": "2020-04-30T09:00:03.000Z", + "price": 0.235, + "quality": 0 }, { - "time": "2020-04-17T14:05:08.000Z", - "price": 0.264 + "time": "2020-04-30T09:00:03.000Z", + "price": 0.245, + "quality": 1 }, { - "time": "2020-04-17T14:10:08.000Z", - "price": 0.264 + "time": "2020-04-30T09:00:03.000Z", + "price": 0.248, + "quality": 2 }, { - "time": "2020-04-17T14:15:07.000Z", - "price": 0.263 + "time": "2020-04-30T09:00:03.000Z", + "price": 0.25, + "quality": 3 }, { - "time": "2020-04-17T14:20:06.000Z", - "price": 0.25 + "time": "2020-04-30T09:00:03.000Z", + "price": 0.259, + "quality": 4 }, { - "time": "2020-04-17T14:25:07.000Z", - "price": 0.264 + "time": "2020-04-30T09:00:03.000Z", + "price": 0.26, + "quality": 5 }, { - "time": "2020-04-17T14:30:07.000Z", - "price": 0.271 + "time": "2020-04-30T09:30:03.000Z", + "price": 0.239, + "quality": 0 }, { - "time": "2020-04-17T14:35:08.000Z", - "price": 0.269 + "time": "2020-04-30T09:30:03.000Z", + "price": 0.242, + "quality": 1 }, { - "time": "2020-04-17T14:40:07.000Z", - "price": 0.272 + "time": "2020-04-30T09:30:03.000Z", + "price": 0.245, + "quality": 2 }, { - "time": "2020-04-17T14:45:10.000Z", - "price": 0.271 + "time": "2020-04-30T09:30:03.000Z", + "price": 0.25, + "quality": 3 }, { - "time": "2020-04-17T14:50:06.000Z", - "price": 0.27 + "time": "2020-04-30T09:30:03.000Z", + "price": 0.259, + "quality": 4 }, { - "time": "2020-04-17T14:55:07.000Z", - "price": 0.267 + "time": "2020-04-30T09:30:03.000Z", + "price": 0.26, + "quality": 5 }, { - "time": "2020-04-17T15:00:07.000Z", - "price": 0.268 + "time": "2020-04-30T10:00:04.000Z", + "price": 0.241, + "quality": 0 }, { - "time": "2020-04-17T15:05:07.000Z", - "price": 0.268 + "time": "2020-04-30T10:00:04.000Z", + "price": 0.244, + "quality": 1 }, { - "time": "2020-04-17T15:10:09.000Z", - "price": 0.268 + "time": "2020-04-30T10:00:04.000Z", + "price": 0.245, + "quality": 2 }, { - "time": "2020-04-17T15:15:06.000Z", - "price": 0.269 + "time": "2020-04-30T10:00:04.000Z", + "price": 0.251, + "quality": 3 }, { - "time": "2020-04-17T15:20:05.000Z", - "price": 0.269 + "time": "2020-04-30T10:00:04.000Z", + "price": 0.259, + "quality": 4 }, { - "time": "2020-04-17T15:25:10.000Z", - "price": 0.263 + "time": "2020-04-30T10:00:04.000Z", + "price": 0.26, + "quality": 5 }, { - "time": "2020-04-17T15:30:07.000Z", - "price": 0.27 + "time": "2020-04-30T10:30:04.000Z", + "price": 0.24, + "quality": 0 }, { - "time": "2020-04-17T15:35:06.000Z", - "price": 0.273 + "time": "2020-04-30T10:30:04.000Z", + "price": 0.244, + "quality": 1 }, { - "time": "2020-04-17T15:40:06.000Z", - "price": 0.27 + "time": "2020-04-30T10:30:04.000Z", + "price": 0.248, + "quality": 2 }, { - "time": "2020-04-17T15:45:06.000Z", - "price": 0.27 + "time": "2020-04-30T10:30:04.000Z", + "price": 0.252, + "quality": 3 }, { - "time": "2020-04-17T15:50:08.000Z", - "price": 0.265 + "time": "2020-04-30T10:30:04.000Z", + "price": 0.26, + "quality": 4 }, { - "time": "2020-04-17T15:55:05.000Z", - "price": 0.27 + "time": "2020-04-30T10:30:04.000Z", + "price": 0.26, + "quality": 5 }, { - "time": "2020-04-17T16:00:06.000Z", - "price": 0.27 + "time": "2020-04-30T11:00:04.000Z", + "price": 0.243, + "quality": 0 }, { - "time": "2020-04-17T16:05:07.000Z", - "price": 0.272 + "time": "2020-04-30T11:00:04.000Z", + "price": 0.242, + "quality": 1 }, { - "time": "2020-04-17T16:10:05.000Z", - "price": 0.268 + "time": "2020-04-30T11:00:04.000Z", + "price": 0.245, + "quality": 2 }, { - "time": "2020-04-17T16:15:04.000Z", - "price": 0.269 + "time": "2020-04-30T11:00:04.000Z", + "price": 0.252, + "quality": 3 }, { - "time": "2020-04-17T16:20:08.000Z", - "price": 0.26 + "time": "2020-04-30T11:00:04.000Z", + "price": 0.26, + "quality": 4 }, { - "time": "2020-04-17T16:25:05.000Z", - "price": 0.269 + "time": "2020-04-30T11:00:04.000Z", + "price": 0.26, + "quality": 5 }, { - "time": "2020-04-17T16:30:06.000Z", - "price": 0.269 + "time": "2020-04-30T11:30:04.000Z", + "price": 0.246, + "quality": 0 }, { - "time": "2020-04-17T16:35:05.000Z", - "price": 0.267 + "time": "2020-04-30T11:30:04.000Z", + "price": 0.246, + "quality": 1 }, { - "time": "2020-04-17T16:40:09.000Z", - "price": 0.25 + "time": "2020-04-30T11:30:04.000Z", + "price": 0.246, + "quality": 2 }, { - "time": "2020-04-17T16:45:07.000Z", - "price": 0.265 + "time": "2020-04-30T11:30:04.000Z", + "price": 0.252, + "quality": 3 }, { - "time": "2020-04-17T16:50:08.000Z", - "price": 0.265 + "time": "2020-04-30T11:30:04.000Z", + "price": 0.26, + "quality": 4 }, { - "time": "2020-04-17T16:55:07.000Z", - "price": 0.261 + "time": "2020-04-30T11:30:04.000Z", + "price": 0.26, + "quality": 5 }, { - "time": "2020-04-17T17:00:05.000Z", - "price": 0.264 + "time": "2020-04-30T12:00:04.000Z", + "price": 0.243, + "quality": 0 }, { - "time": "2020-04-17T17:05:03.000Z", - "price": 0.266 + "time": "2020-04-30T12:00:04.000Z", + "price": 0.245, + "quality": 1 }, { - "time": "2020-04-17T17:10:03.000Z", - "price": 0.26 + "time": "2020-04-30T12:00:04.000Z", + "price": 0.245, + "quality": 2 }, { - "time": "2020-04-17T17:15:04.000Z", - "price": 0.261 + "time": "2020-04-30T12:00:04.000Z", + "price": 0.252, + "quality": 3 }, { - "time": "2020-04-17T17:20:04.000Z", - "price": 0.261 + "time": "2020-04-30T12:00:04.000Z", + "price": 0.26, + "quality": 4 }, { - "time": "2020-04-17T17:25:04.000Z", - "price": 0.258 + "time": "2020-04-30T12:00:04.000Z", + "price": 0.26, + "quality": 5 }, { - "time": "2020-04-17T17:30:03.000Z", - "price": 0.255 + "time": "2020-04-30T12:30:04.000Z", + "price": 0.242, + "quality": 0 }, { - "time": "2020-04-17T17:35:06.000Z", - "price": 0.26 + "time": "2020-04-30T12:30:04.000Z", + "price": 0.241, + "quality": 1 + }, + { + "time": "2020-04-30T12:30:04.000Z", + "price": 0.248, + "quality": 2 + }, + { + "time": "2020-04-30T12:30:04.000Z", + "price": 0.242, + "quality": 3 + }, + { + "time": "2020-04-30T12:30:04.000Z", + "price": 0.26, + "quality": 4 + }, + { + "time": "2020-04-30T12:30:04.000Z", + "price": 0.26, + "quality": 5 + }, + { + "time": "2020-04-30T13:00:03.000Z", + "price": 0.24, + "quality": 0 + }, + { + "time": "2020-04-30T13:00:03.000Z", + "price": 0.242, + "quality": 1 + }, + { + "time": "2020-04-30T13:00:03.000Z", + "price": 0.248, + "quality": 2 + }, + { + "time": "2020-04-30T13:00:03.000Z", + "price": 0.246, + "quality": 3 + }, + { + "time": "2020-04-30T13:00:03.000Z", + "price": 0.249, + "quality": 4 + }, + { + "time": "2020-04-30T13:00:03.000Z", + "price": 0.26, + "quality": 5 + }, + { + "time": "2020-04-30T13:30:04.000Z", + "price": 0.239, + "quality": 0 + }, + { + "time": "2020-04-30T13:30:04.000Z", + "price": 0.243, + "quality": 1 + }, + { + "time": "2020-04-30T13:30:04.000Z", + "price": 0.247, + "quality": 2 + }, + { + "time": "2020-04-30T13:30:04.000Z", + "price": 0.251, + "quality": 3 + }, + { + "time": "2020-04-30T13:30:04.000Z", + "price": 0.258, + "quality": 4 + }, + { + "time": "2020-04-30T13:30:04.000Z", + "price": 0.259, + "quality": 5 + }, + { + "time": "2020-04-30T14:00:03.000Z", + "price": 0.242, + "quality": 0 + }, + { + "time": "2020-04-30T14:00:03.000Z", + "price": 0.243, + "quality": 1 + }, + { + "time": "2020-04-30T14:00:03.000Z", + "price": 0.248, + "quality": 2 + }, + { + "time": "2020-04-30T14:00:03.000Z", + "price": 0.251, + "quality": 3 + }, + { + "time": "2020-04-30T14:00:03.000Z", + "price": 0.258, + "quality": 4 + }, + { + "time": "2020-04-30T14:00:03.000Z", + "price": 0.249, + "quality": 5 + }, + { + "time": "2020-04-30T14:30:04.000Z", + "price": 0.244, + "quality": 0 + }, + { + "time": "2020-04-30T14:30:04.000Z", + "price": 0.248, + "quality": 1 + }, + { + "time": "2020-04-30T14:30:04.000Z", + "price": 0.249, + "quality": 2 + }, + { + "time": "2020-04-30T14:30:04.000Z", + "price": 0.249, + "quality": 3 + }, + { + "time": "2020-04-30T14:30:04.000Z", + "price": 0.258, + "quality": 4 + }, + { + "time": "2020-04-30T14:30:04.000Z", + "price": 0.259, + "quality": 5 + }, + { + "time": "2020-04-30T15:00:04.000Z", + "price": 0.245, + "quality": 0 + }, + { + "time": "2020-04-30T15:00:04.000Z", + "price": 0.245, + "quality": 1 + }, + { + "time": "2020-04-30T15:00:04.000Z", + "price": 0.249, + "quality": 2 + }, + { + "time": "2020-04-30T15:00:04.000Z", + "price": 0.249, + "quality": 3 + }, + { + "time": "2020-04-30T15:00:04.000Z", + "price": 0.258, + "quality": 4 + }, + { + "time": "2020-04-30T15:00:04.000Z", + "price": 0.259, + "quality": 5 + }, + { + "time": "2020-04-30T15:30:10.000Z", + "price": 0.243, + "quality": 0 + }, + { + "time": "2020-04-30T15:30:10.000Z", + "price": 0.245, + "quality": 1 + }, + { + "time": "2020-04-30T15:30:10.000Z", + "price": 0.244, + "quality": 2 + }, + { + "time": "2020-04-30T15:30:10.000Z", + "price": 0.25, + "quality": 3 + }, + { + "time": "2020-04-30T15:30:10.000Z", + "price": 0.258, + "quality": 4 + }, + { + "time": "2020-04-30T15:30:10.000Z", + "price": 0.259, + "quality": 5 + }, + { + "time": "2020-04-30T16:00:04.000Z", + "price": 0.243, + "quality": 0 + }, + { + "time": "2020-04-30T16:00:04.000Z", + "price": 0.24, + "quality": 1 + }, + { + "time": "2020-04-30T16:00:04.000Z", + "price": 0.25, + "quality": 2 + }, + { + "time": "2020-04-30T16:00:04.000Z", + "price": 0.25, + "quality": 3 + }, + { + "time": "2020-04-30T16:00:04.000Z", + "price": 0.258, + "quality": 4 + }, + { + "time": "2020-04-30T16:00:04.000Z", + "price": 0.259, + "quality": 5 + }, + { + "time": "2020-04-30T16:30:04.000Z", + "price": 0.242, + "quality": 0 + }, + { + "time": "2020-04-30T16:30:04.000Z", + "price": 0.248, + "quality": 1 + }, + { + "time": "2020-04-30T16:30:04.000Z", + "price": 0.242, + "quality": 2 + }, + { + "time": "2020-04-30T16:30:04.000Z", + "price": 0.251, + "quality": 3 + }, + { + "time": "2020-04-30T16:30:04.000Z", + "price": 0.258, + "quality": 4 + }, + { + "time": "2020-04-30T16:30:04.000Z", + "price": 0.259, + "quality": 5 + }, + { + "time": "2020-04-30T17:30:04.000Z", + "price": 0.24, + "quality": 0 + }, + { + "time": "2020-04-30T17:30:04.000Z", + "price": 0.242, + "quality": 1 + }, + { + "time": "2020-04-30T17:30:04.000Z", + "price": 0.248, + "quality": 2 + }, + { + "time": "2020-04-30T17:30:04.000Z", + "price": 0.251, + "quality": 3 + }, + { + "time": "2020-04-30T17:30:04.000Z", + "price": 0.248, + "quality": 4 + }, + { + "time": "2020-04-30T17:30:04.000Z", + "price": 0.259, + "quality": 5 + }, + { + "time": "2020-04-30T18:00:04.000Z", + "price": 0.245, + "quality": 0 + }, + { + "time": "2020-04-30T18:00:04.000Z", + "price": 0.248, + "quality": 1 + }, + { + "time": "2020-04-30T18:00:04.000Z", + "price": 0.246, + "quality": 2 + }, + { + "time": "2020-04-30T18:00:04.000Z", + "price": 0.251, + "quality": 3 + }, + { + "time": "2020-04-30T18:00:04.000Z", + "price": 0.258, + "quality": 4 + }, + { + "time": "2020-04-30T18:00:04.000Z", + "price": 0.247, + "quality": 5 + }, + { + "time": "2020-04-30T18:30:04.000Z", + "price": 0.243, + "quality": 0 + }, + { + "time": "2020-04-30T18:30:04.000Z", + "price": 0.243, + "quality": 1 + }, + { + "time": "2020-04-30T18:30:04.000Z", + "price": 0.243, + "quality": 2 + }, + { + "time": "2020-04-30T18:30:04.000Z", + "price": 0.251, + "quality": 3 + }, + { + "time": "2020-04-30T18:30:04.000Z", + "price": 0.244, + "quality": 4 + }, + { + "time": "2020-04-30T18:30:04.000Z", + "price": 0.247, + "quality": 5 } ] \ No newline at end of file From 457d4f05af3973541f52e7d5c812ee8d6b36f692 Mon Sep 17 00:00:00 2001 From: Oliver Boehlk Date: Thu, 30 Apr 2020 20:47:22 +0200 Subject: [PATCH 3/3] enable local testing without database --- backend/index.js | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/backend/index.js b/backend/index.js index ca313a3..2314b46 100644 --- a/backend/index.js +++ b/backend/index.js @@ -36,6 +36,7 @@ const saltRounds = 13; var serverStartupComplete = false; +const DEBUG = process.env.NODE_ENV === "debug" ? true : false; function twoDigits(d) { if (0 <= d && d < 10) return "0" + d.toString(); @@ -62,7 +63,7 @@ app.use(session({ secret: "simCoRoxUFocker", saveUninitialized: true, resave: true, - store: sessionStore, + store: DEBUG ? undefined : sessionStore, "cookie": { "maxAge": 86400 * 1000 } @@ -93,10 +94,21 @@ passport.use('local-login', new LocalStrategy({ passwordField: "password", passReqToCallback: true }, function (req, email, password, done) { + if (DEBUG) { + if (email === "test" && password === "test") { + return done(null, { + deactivated: false, + email: "test1", + id: 0, + created: new Date(), + password: "test" + }); + } else return done(null, false); + } email = mysql.escape(email); connection.query(`SELECT * from user WHERE email = ${email} AND deactivated = 0`, function (err, rows) { if (err) { - return res.status(static.INTERNAL_SERVER_ERROR).send(); + return done(null, false); } if (!rows.length) { return done(null, false); @@ -114,9 +126,21 @@ passport.serializeUser(function (user, done) { }); passport.deserializeUser(function (id, done) { - connection.query(`select * from user where id = ${id} AND deactivated = 0`, function (err, rows) { - done(err, rows[0]); - }) + if (!DEBUG) + connection.query(`select * from user where id = ${id} AND deactivated = 0`, function (err, rows) { + done(err, rows[0]); + }) + else { + if (id === 0) { + done(null, { + deactivated: false, + email: "test1", + id: 0, + created: new Date(), + password: "test" + }); + } else return done(null, []); + } }); app.post("/API/user/login", passport.authenticate('local-login'), function (req, res) { @@ -128,9 +152,10 @@ app.put("/API/user/create", function (req, res) { if (email && password) { email = mysql.escape(email); password = mysql.escape(bcrypt.hashSync(password, saltRounds)); + if (DEBUG) return res.status(status.OK).send(); connection.query(`INSERT INTO user (deactivated, email, password) values (1, ${email}, ${password})`, function (err, rows) { if (err) - return res.send(status.INTERNAL_SERVER_ERROR).send(); + return res.status(status.INTERNAL_SERVER_ERROR).send(); return res.status(status.OK).send(); }); } else { @@ -155,7 +180,7 @@ app.get('/API/day', function (req, res) { const kind = parseInt(req.query.kind); if (Number.isInteger(kind)) { //Mock Data: - if (kind === -1) return res.send(mockDataDay); + if (kind === -1 || DEBUG) return res.send(mockDataDay); if (kind >= 1 && kind <= 113) { var dayend = new Date().toMysqlFormat();