From 3e7dd36202fc8b3751a069f1f3b9a393828609d5 Mon Sep 17 00:00:00 2001 From: Andrew Bloom Date: Thu, 8 Feb 2018 16:15:30 -0800 Subject: [PATCH] routes for users not logged in to get and post networks --- .eslintignore | 1 + .gitignore | 1 + __test__/neuralNetwork-router.test.js | 63 ++++------ __test__/temp/transformed.wav | Bin 88500 -> 88500 bytes lib/neural-net.js | 3 +- log.json | 160 +------------------------- models/user.js | 1 - routes/neuralNetwork-router.js | 39 ++++++- routes/wave-router.js | 32 ------ 9 files changed, 62 insertions(+), 238 deletions(-) delete mode 100644 routes/wave-router.js diff --git a/.eslintignore b/.eslintignore index 4e3663d..77bfc86 100644 --- a/.eslintignore +++ b/.eslintignore @@ -2,3 +2,4 @@ **/vendor/* **/*.min.js **/coverage/* +**/log.json \ No newline at end of file diff --git a/.gitignore b/.gitignore index ec20936..b17bf7d 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,7 @@ logs npm-debug.log* yarn-debug.log* yarn-error.log* +log.json # Runtime data pids diff --git a/__test__/neuralNetwork-router.test.js b/__test__/neuralNetwork-router.test.js index 8bf081c..6bd5399 100644 --- a/__test__/neuralNetwork-router.test.js +++ b/__test__/neuralNetwork-router.test.js @@ -24,7 +24,6 @@ describe(`Neural Network Router`, () => { .then(response => { tempUserMock.user = response.user; tempUserMock.token = response.token; - // console.log(tempUserMock); return superagent.post(`${API_URL}/neuralnetwork/${triWaveToTest}/testname`) .set('Authorization', `Bearer ${tempUserMock.token}`); }) @@ -81,47 +80,25 @@ describe(`Neural Network Router`, () => { }, 100000); }); - // test(`neural network PUT request should return a 200 status if there are no errors`, () => { - // let tempUserMock = {}; - // return userMockFactory.create() - // .then(response => { - // tempUserMock.user = response.user; - // tempUserMock.token = response.token; - // return neuralNetworkMockFactory.create() - // .then(response => { - // tempUserMock.user = response.user; - // tempUserMock.networkID = response.networkID; - // return superagent.put(`${API_URL}/neuralnetwork/${tempUserMock.networkID}`) - // .set('Authorization', `Bearer ${tempUserMock.token}`) - // .send({neuralNetwork: placeholderNetwork}); - // }); - // }) - // .then(response => { - // expect(response.status).toEqual(200); - // expect(response.body.neuralNetwork).toBeTruthy(); - // expect(response.body._id).toBeTruthy(); - // }); - // }); - // }); -// describe(`neural network DELETE request`, () => { -// test(`neural network DELETE request should return a 204 status if there are no errors`, () => { -// let tempUserMock = {}; -// return userMockFactory.create() -// .then(response => { -// tempUserMock.user = response.user; -// tempUserMock.token = response.token; -// return neuralNetworkMockFactory.create() -// .then(response => { -// tempUserMock.user = response.user; -// tempUserMock.networkID = response.networkID; -// return superagent.delete(`${API_URL}/neuralnetwork/${tempUserMock.networkID}`) -// .set('Authorization', `Bearer ${tempUserMock.token}`); -// }); -// }) -// .then(response => { -// expect(response.status).toEqual(204); -// }); -// }); -// }); + describe(`neural network DELETE request`, () => { + test(`neural network DELETE request should return a 204 status if there are no errors`, () => { + let tempUserMock = {}; + return userMockFactory.create() + .then(response => { + tempUserMock.user = response.user; + tempUserMock.token = response.token; + return neuralNetworkMockFactory.create() + .then(response => { + tempUserMock.user = response.user; + tempUserMock.networkID = response.networkID; + return superagent.delete(`${API_URL}/neuralnetwork/${tempUserMock.networkID}`) + .set('Authorization', `Bearer ${tempUserMock.token}`); + }); + }) + .then(response => { + expect(response.status).toEqual(204); + }); + }); + }); }); diff --git a/__test__/temp/transformed.wav b/__test__/temp/transformed.wav index 2df5c81256020b7ff7ede2e984e88332018a4005..1b8018545a731c2035e4deb1939fd074dff0e3ca 100644 GIT binary patch literal 88500 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 R_#B{{==~db@k#pUe*q*?N$vmu literal 88500 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 diff --git a/lib/neural-net.js b/lib/neural-net.js index 91644fb..367ed33 100644 --- a/lib/neural-net.js +++ b/lib/neural-net.js @@ -25,7 +25,6 @@ const myNetwork = new Network({ }); const predictor = (dataToProcess, network = myNetwork) => { - console.log(network); dataToProcess.neuralTransformedArray = []; const arrayToProcess = dataToProcess.neuralArray; @@ -60,8 +59,8 @@ const predictor = (dataToProcess, network = myNetwork) => { dataToProcess.neuralTransformedArray.push(network.activate([...currentValues])[0]); } // Andrew - attaching the trained network to the output object for use in other modules + // Andrew - The toJSON method deconstructs the network, but does not stringify it. dataToProcess.neuralNet = network.toJSON(); - console.log(dataToProcess.neuralNet, Network.fromJSON(dataToProcess.neuralNet)); return dataToProcess; }; diff --git a/log.json b/log.json index 7115266..068471b 100644 --- a/log.json +++ b/log.json @@ -1,154 +1,6 @@ -{"level":"info","message":"There's a POST on /signup","timestamp":"2018-02-08T21:07:56.170Z"} -{"level":"info","message":"There's a GET on /login","timestamp":"2018-02-08T21:07:56.285Z"} -{"level":"info","message":"There's a POST on /network/tri/testname","timestamp":"2018-02-08T21:10:25.735Z"} -{"level":"info","message":"__ERROR__ returning a 404 from the catch all route","timestamp":"2018-02-08T21:10:25.737Z"} -{"level":"info","message":"There's a POST on /signup","timestamp":"2018-02-08T21:10:43.818Z"} -{"level":"info","message":"There's a GET on /login","timestamp":"2018-02-08T21:10:43.918Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T21:12:29.073Z"} -{"level":"info","message":"There's a POST on /signup","timestamp":"2018-02-08T21:13:08.621Z"} -{"level":"info","message":"There's a GET on /login","timestamp":"2018-02-08T21:13:08.775Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T21:14:18.454Z"} -{"level":"info","message":"There's a POST on /signup","timestamp":"2018-02-08T21:14:55.610Z"} -{"level":"info","message":"There's a GET on /login","timestamp":"2018-02-08T21:14:55.726Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T21:15:21.838Z"} -{"level":"info","message":"There's a POST on /signup","timestamp":"2018-02-08T21:15:57.754Z"} -{"level":"info","message":"There's a GET on /login","timestamp":"2018-02-08T21:15:57.885Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T21:17:46.698Z"} -{"level":"info","message":"There's a POST on /signup","timestamp":"2018-02-08T21:18:23.042Z"} -{"level":"info","message":"There's a GET on /login","timestamp":"2018-02-08T21:18:23.198Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T21:20:26.889Z"} -{"level":"info","message":"There's a POST on /signup","timestamp":"2018-02-08T21:21:03.914Z"} -{"level":"info","message":"There's a GET on /login","timestamp":"2018-02-08T21:21:04.034Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T21:21:31.486Z"} -{"level":"info","message":"There's a POST on /signup","timestamp":"2018-02-08T21:22:03.354Z"} -{"level":"info","message":"There's a GET on /login","timestamp":"2018-02-08T21:22:03.477Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T21:22:34.724Z"} -{"level":"info","message":"There's a POST on /signup","timestamp":"2018-02-08T21:23:04.747Z"} -{"level":"info","message":"There's a GET on /login","timestamp":"2018-02-08T21:23:04.855Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T21:27:26.985Z"} -{"level":"info","message":"There's a POST on /signup","timestamp":"2018-02-08T21:28:00.035Z"} -{"level":"info","message":"There's a GET on /login","timestamp":"2018-02-08T21:28:00.161Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T21:29:24.118Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T21:45:19.451Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T21:48:03.186Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T21:50:23.046Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cc62e60dfff9d2e3d4929","timestamp":"2018-02-08T21:50:38.351Z"} -{"level":"info","message":"There's a GET on /oauth/google?code=4/AADgtEXTqScpx6JC7RU757bPs52QbEXS47gCc3VS0aPs8RK6_pBqP5-O4wFOmy5SI1jfJnurq0WydwEOVUrJ_nE&authuser=0&session_state=f2705ac95a85557e938003d91bac571572b49abf..7df5&prompt=consent","timestamp":"2018-02-08T20:48:13.335Z"} -{"level":"info","message":"code : 4/AADgtEXTqScpx6JC7RU757bPs52QbEXS47gCc3VS0aPs8RK6_pBqP5-O4wFOmy5SI1jfJnurq0WydwEOVUrJ_nE","timestamp":"2018-02-08T20:48:13.339Z"} -{"level":"info","message":"redirected back from google oauth","timestamp":"2018-02-08T20:48:13.657Z"} -{"level":"info","message":"sending get to openid","timestamp":"2018-02-08T20:48:13.657Z"} -{"level":"info","message":"redirected back from open id","timestamp":"2018-02-08T20:48:13.888Z"} -{"level":"info","message":"profile: [object Object]","timestamp":"2018-02-08T20:48:13.890Z"} -{"level":"info","message":"user.handleGoogleAuth","timestamp":"2018-02-08T20:48:13.891Z"} -{"level":"info","message":"There's a GET on /oauth/google?code=4/D-YnH6nbOUgpYlIVUui80EJO40wnkjfGKh9kUzYDQ4k&authuser=0&session_state=42723ff7e457941399113abf7bdbe8b61fbdbe0b..7eb0&prompt=consent","timestamp":"2018-02-08T20:49:11.824Z"} -{"level":"info","message":"code : 4/D-YnH6nbOUgpYlIVUui80EJO40wnkjfGKh9kUzYDQ4k","timestamp":"2018-02-08T20:49:11.828Z"} -{"level":"info","message":"redirected back from google oauth","timestamp":"2018-02-08T20:49:12.059Z"} -{"level":"info","message":"sending get to openid","timestamp":"2018-02-08T20:49:12.061Z"} -{"level":"info","message":"redirected back from open id","timestamp":"2018-02-08T20:49:12.273Z"} -{"level":"info","message":"profile: [object Object]","timestamp":"2018-02-08T20:49:12.274Z"} -{"level":"info","message":"user.handleGoogleAuth","timestamp":"2018-02-08T20:49:12.275Z"} -{"error":{},"level":"info","message":"","timestamp":"2018-02-08T20:49:12.369Z"} -{"level":"info","message":"There's a GET on /oauth/google?code=4/AAAuJiFHJ-x-n3q3O8-TEWlJu3SsHhf-QOhwrNGQGAJpzv0Hn3wkD3B17ZHZeQl9SJFeBSRCcEw4KwJffgSLKAE&authuser=0&session_state=18c82bde106cd70a9c28a1c2e909fef6df616a39..24ef&prompt=consent","timestamp":"2018-02-08T20:54:14.396Z"} -{"level":"info","message":"code : 4/AAAuJiFHJ-x-n3q3O8-TEWlJu3SsHhf-QOhwrNGQGAJpzv0Hn3wkD3B17ZHZeQl9SJFeBSRCcEw4KwJffgSLKAE","timestamp":"2018-02-08T20:54:14.400Z"} -{"level":"info","message":"redirected back from google oauth","timestamp":"2018-02-08T20:54:14.627Z"} -{"level":"info","message":"sending get to openid","timestamp":"2018-02-08T20:54:14.627Z"} -{"level":"info","message":"redirected back from open id","timestamp":"2018-02-08T20:54:14.815Z"} -{"level":"info","message":"profile: [object Object]","timestamp":"2018-02-08T20:54:14.816Z"} -{"level":"info","message":"user.handleGoogleAuth","timestamp":"2018-02-08T20:54:14.817Z"} -{"error":{},"level":"info","message":"","timestamp":"2018-02-08T20:54:14.886Z"} -{"level":"info","message":"There's a GET on /oauth/google?code=4/DIhn8Bh_igcdeSSZ7_DBH1SQmL5mbd4Xly-VhTSuopI&authuser=0&session_state=c5fee18fc39c3a37a4df4b564fafff99ffe53085..2a6e&prompt=consent","timestamp":"2018-02-08T20:56:13.164Z"} -{"level":"info","message":"code : 4/DIhn8Bh_igcdeSSZ7_DBH1SQmL5mbd4Xly-VhTSuopI","timestamp":"2018-02-08T20:56:13.168Z"} -{"level":"info","message":"redirected back from google oauth","timestamp":"2018-02-08T20:56:13.419Z"} -{"level":"info","message":"sending get to openid","timestamp":"2018-02-08T20:56:13.420Z"} -{"level":"info","message":"redirected back from open id","timestamp":"2018-02-08T20:56:13.824Z"} -{"level":"info","message":"profile: [object Object]","timestamp":"2018-02-08T20:56:13.825Z"} -{"level":"info","message":"user.handleGoogleAuth","timestamp":"2018-02-08T20:56:13.826Z"} -{"message":"secretOrPrivateKey must have a value","stack":"Error: secretOrPrivateKey must have a value\n at Object.module.exports [as sign] (/home/ncarignan/cf/401/projects/sound-machine/intelliSound-Server/node_modules/jsonwebtoken/sign.js:101:20)\n at save.then.user (/home/ncarignan/cf/401/projects/sound-machine/intelliSound-Server/models/user.js:52:27)\n at \n at process._tickCallback (internal/process/next_tick.js:188:7)","level":"info","timestamp":"2018-02-08T20:56:13.872Z"} -{"level":"info","message":"There's a GET on /oauth/google?code=4/QpcWDhmXKP7xwqvDZ_COlZtXA8HCeEVU8TF3FaSR65g&authuser=0&session_state=6c7e47e2ac35b19fffecfccfc9bfc1869e780dba..f1d2&prompt=consent","timestamp":"2018-02-08T20:58:03.144Z"} -{"level":"info","message":"code : 4/QpcWDhmXKP7xwqvDZ_COlZtXA8HCeEVU8TF3FaSR65g","timestamp":"2018-02-08T20:58:03.147Z"} -{"level":"info","message":"redirected back from google oauth","timestamp":"2018-02-08T20:58:03.344Z"} -{"level":"info","message":"sending get to openid","timestamp":"2018-02-08T20:58:03.344Z"} -{"level":"info","message":"redirected back from open id","timestamp":"2018-02-08T20:58:03.690Z"} -{"level":"info","message":"profile: [object Object]","timestamp":"2018-02-08T20:58:03.692Z"} -{"level":"info","message":"user.handleGoogleAuth","timestamp":"2018-02-08T20:58:03.693Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/me","timestamp":"2018-02-08T21:00:42.707Z"} -{"level":"info","message":"__ERROR__ returning a 404 from the catch all route","timestamp":"2018-02-08T21:00:42.711Z"} -{"level":"info","message":"There's a GET on /oauth/google?code=4/AABV6oVyGy1GRbJYCQ1rtohkCt9m48Ag2u2kIqDcxh3saLqMy--4FaOVhi1gqKiwb_ht_y61zlzXmKmneMv_2TA&authuser=0&session_state=0f5004893f4d57ebfc3bf70a4eebad274d060844..1a73&prompt=consent","timestamp":"2018-02-08T21:26:52.591Z"} -{"level":"info","message":"code : 4/AABV6oVyGy1GRbJYCQ1rtohkCt9m48Ag2u2kIqDcxh3saLqMy--4FaOVhi1gqKiwb_ht_y61zlzXmKmneMv_2TA","timestamp":"2018-02-08T21:26:52.595Z"} -{"level":"info","message":"redirected back from google oauth","timestamp":"2018-02-08T21:26:52.813Z"} -{"level":"info","message":"sending get to openid","timestamp":"2018-02-08T21:26:52.814Z"} -{"level":"info","message":"redirected back from open id","timestamp":"2018-02-08T21:26:53.020Z"} -{"level":"info","message":"profile: [object Object]","timestamp":"2018-02-08T21:26:53.021Z"} -{"level":"info","message":"user.handleGoogleAuth","timestamp":"2018-02-08T21:26:53.022Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/me","timestamp":"2018-02-08T21:26:53.623Z"} -{"level":"info","message":"__ERROR__ returning a 404 from the catch all route","timestamp":"2018-02-08T21:26:53.624Z"} -{"level":"info","message":"There's a GET on /oauth/google?code=4/24muQH1gUN_mFR6UkO3RwC7W0VgwyuMx879OT0Ge5-M&authuser=0&session_state=4dd9862a6eddaadc6a3fb61babd0547310ecf2d0..49d6&prompt=consent","timestamp":"2018-02-08T21:27:46.710Z"} -{"level":"info","message":"code : 4/24muQH1gUN_mFR6UkO3RwC7W0VgwyuMx879OT0Ge5-M","timestamp":"2018-02-08T21:27:46.710Z"} -{"level":"info","message":"redirected back from google oauth","timestamp":"2018-02-08T21:27:47.097Z"} -{"level":"info","message":"sending get to openid","timestamp":"2018-02-08T21:27:47.097Z"} -{"level":"info","message":"redirected back from open id","timestamp":"2018-02-08T21:27:47.304Z"} -{"level":"info","message":"profile: [object Object]","timestamp":"2018-02-08T21:27:47.304Z"} -{"level":"info","message":"user.handleGoogleAuth","timestamp":"2018-02-08T21:27:47.305Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/me","timestamp":"2018-02-08T21:27:48.322Z"} -{"level":"info","message":"__ERROR__ returning a 404 from the catch all route","timestamp":"2018-02-08T21:27:48.323Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T22:38:21.891Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cd16c404a50a6e20baff4","timestamp":"2018-02-08T22:38:36.900Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cd16c404a50a6e20baff7/tri","timestamp":"2018-02-08T22:38:36.977Z"} -{"level":"info","message":"responding with a 500 status: general error because network.activate is not a function","timestamp":"2018-02-08T22:38:37.037Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T22:41:25.153Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cd22303e70da7764d8d8e","timestamp":"2018-02-08T22:41:39.062Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cd22303e70da7764d8d91/tri","timestamp":"2018-02-08T22:41:39.150Z"} -{"level":"info","message":"responding with a 500 status: general error because network.activate is not a function","timestamp":"2018-02-08T22:41:39.209Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T22:46:46.287Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cd365a3935ca81f0832e8","timestamp":"2018-02-08T22:47:01.951Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cd366a3935ca81f0832eb/tri","timestamp":"2018-02-08T22:47:02.054Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T22:49:11.210Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cd3f4b9eb06a87db9fe90","timestamp":"2018-02-08T22:49:24.120Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cd3f4b9eb06a87db9fe93/tri","timestamp":"2018-02-08T22:49:24.207Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T22:51:48.507Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cd495e653e0a8f0d14193","timestamp":"2018-02-08T22:52:05.966Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cd496e653e0a8f0d14196/tri","timestamp":"2018-02-08T22:52:06.045Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T22:53:59.413Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cd5157a018ca947e58cf7","timestamp":"2018-02-08T22:54:13.919Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cd5157a018ca947e58cfa/tri","timestamp":"2018-02-08T22:54:13.999Z"} -{"level":"info","message":"responding with a 500 status: general error because network.activate is not a function","timestamp":"2018-02-08T22:54:14.047Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T22:56:58.479Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cd5c7758f77a9eb5491f3","timestamp":"2018-02-08T22:57:11.506Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cd5c7758f77a9eb5491f6/tri","timestamp":"2018-02-08T22:57:11.604Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T22:59:58.078Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cd67b9ad0f0aa707d548d","timestamp":"2018-02-08T23:00:11.669Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cd67b9ad0f0aa707d5490/tri","timestamp":"2018-02-08T23:00:11.749Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T23:03:33.257Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cd7528f73ffab25472233","timestamp":"2018-02-08T23:03:46.780Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cd7528f73ffab25472236/tri","timestamp":"2018-02-08T23:03:46.875Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T23:11:02.842Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cd914959edbac07e4745d","timestamp":"2018-02-08T23:11:16.493Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cd914959edbac07e47460/tri","timestamp":"2018-02-08T23:11:16.580Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T23:12:18.475Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cd960cf8fc7ac3d66513f","timestamp":"2018-02-08T23:12:32.022Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cd960cf8fc7ac3d665142/tri","timestamp":"2018-02-08T23:12:32.108Z"} -{"level":"info","message":"responding with a 500 status: general error because network.activate is not a function","timestamp":"2018-02-08T23:12:32.166Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T23:13:17.310Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cd99a983dd6ac7ac28688","timestamp":"2018-02-08T23:13:30.511Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cd99a983dd6ac7ac2868b/tri","timestamp":"2018-02-08T23:13:30.584Z"} -{"level":"info","message":"responding with a 500 status: general error because network.activate is not a function","timestamp":"2018-02-08T23:13:30.645Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T23:16:35.593Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cda60471246ace68c8cfa","timestamp":"2018-02-08T23:16:48.494Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cda60471246ace68c8cfd/tri","timestamp":"2018-02-08T23:16:48.569Z"} -{"level":"info","message":"responding with a 500 status: general error because network.activate is not a function","timestamp":"2018-02-08T23:16:48.621Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T23:18:07.083Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cdabc11338cad2e130617","timestamp":"2018-02-08T23:18:20.295Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cdabc11338cad2e13061a/tri","timestamp":"2018-02-08T23:18:20.372Z"} -{"level":"info","message":"responding with a 500 status: general error because network.activate is not a function","timestamp":"2018-02-08T23:18:20.421Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T23:29:35.281Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cdd6c7d23b2aea8097357","timestamp":"2018-02-08T23:29:48.301Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cdd6c7d23b2aea809735a/tri","timestamp":"2018-02-08T23:29:48.376Z"} -{"level":"info","message":"responding with a 500 status: general error because network.activate is not a function","timestamp":"2018-02-08T23:29:48.418Z"} -{"level":"info","message":"There's a POST on /signup","timestamp":"2018-02-08T23:30:05.567Z"} -{"level":"info","message":"There's a GET on /login","timestamp":"2018-02-08T23:30:05.657Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T23:32:49.789Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cde2f4b2b76af25d7cb60","timestamp":"2018-02-08T23:33:03.118Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cde2f4b2b76af25d7cb63/tri","timestamp":"2018-02-08T23:33:03.195Z"} -{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-08T23:33:57.455Z"} -{"level":"info","message":"There's a GET on /neuralnetwork/5a7cde7288a813af5d969682","timestamp":"2018-02-08T23:34:10.750Z"} -{"level":"info","message":"There's a PUT on /neuralnetwork/5a7cde7288a813af5d969685/tri","timestamp":"2018-02-08T23:34:10.826Z"} +{"level":"info","message":"There's a POST on /neuralnetwork/tri/testname","timestamp":"2018-02-09T00:13:20.425Z"} +{"level":"info","message":"There's a GET on /neuralnetwork/5a7ce7aeaae6e1b6bbcb86dc","timestamp":"2018-02-09T00:13:34.242Z"} +{"level":"info","message":"There's a PUT on /neuralnetwork/5a7ce7aeaae6e1b6bbcb86df/tri","timestamp":"2018-02-09T00:13:34.324Z"} +{"level":"info","message":"There's a DELETE on /neuralnetwork/5a7ce7baaae6e1b6bbcb86e2","timestamp":"2018-02-09T00:13:46.100Z"} +{"level":"info","message":"There's a POST on /signup","timestamp":"2018-02-09T00:14:07.032Z"} +{"level":"info","message":"There's a GET on /login","timestamp":"2018-02-09T00:14:07.147Z"} diff --git a/models/user.js b/models/user.js index 4841ea9..94ecf7d 100644 --- a/models/user.js +++ b/models/user.js @@ -48,7 +48,6 @@ userSchema.methods.createToken = function(){ this.tokenSeed = crypto.randomBytes(64).toString('hex'); return this.save() .then(user => { - console.log('createtoken user: ', user); return jsonWebToken.sign({ tokenSeed: user.tokenSeed, }, process.env.SECRET_SALT); diff --git a/routes/neuralNetwork-router.js b/routes/neuralNetwork-router.js index 23eeada..527e038 100644 --- a/routes/neuralNetwork-router.js +++ b/routes/neuralNetwork-router.js @@ -15,10 +15,24 @@ const waveWriter = require('../lib/wave-writer'); const neuralNetworkRouter = module.exports = new Router(); -neuralNetworkRouter.post(`/neuralnetwork/save/:neuralnetname`); +neuralNetworkRouter.post(`/neuralnetwork/save/:neuralnetname`, jsonParser, bearerAuthMiddleware, (request, response, next) => { + if (!request.params.neuralnetname){ + throw new httpErrors('__ERROR__', 'Network must have a name'); + } + return new NeuralNetworkModel({ + neuralNetwork: request.body, + name: request.params.neuralnetname, + }).save() + .then(network => { + request.user.neuralNetworks.push(network._id); + return User.findByIdAndUpdate(request.user._id, request.user) + .then(() => response.sendStatus(200)) + .catch(next); + }); +}); // user must be logged in to perform any actions on a saved network/save a network -neuralNetworkRouter.post(`/neuralnetwork/:wavename/:neuralnetname`, jsonParser, bearerAuthMiddleware, (request, response, next) => { +neuralNetworkRouter.post(`/neuralnetwork/:wavename/:neuralnetname`, bearerAuthMiddleware, (request, response, next) => { // need to add the neuralNetwork created through WaveRouter to the user's array of networks // Andrew - TODO: check where this error is handled or if it needs to be refactored @@ -39,7 +53,6 @@ neuralNetworkRouter.post(`/neuralnetwork/:wavename/:neuralnetname`, jsonParser, let parsedFile = waveParser(data); parsedFile = neuralNetwork(parsedFile); neuralGeneratedFile = waveWriter(parsedFile); - console.log(parsedFile.neuralNet); const neuralNetworkToSave = JSON.stringify(parsedFile.neuralNet); return new NeuralNetworkModel({ @@ -56,9 +69,24 @@ neuralNetworkRouter.post(`/neuralnetwork/:wavename/:neuralnetname`, jsonParser, }); }); -// neuralNetworkRouter.get('/neuralnetwork/wave/:wavename', (request, response, next) => { +neuralNetworkRouter.get('/neuralnetwork/wave/:wavename', (request, response, next) => { + + if (!request.params.wavename) { + throw new httpErrors('__ERROR__', 'User must select a wave to use'); + } + + const path = `${__dirname}/../assets/${request.params.wavename}.wav`; -// }); + return fsx.readFile(path) + .then(data => { + let parsedFile = waveParser(data); + parsedFile = neuralNetwork(parsedFile); + const neuralGeneratedFile = waveWriter(parsedFile); + const neuralNetworkToSave = JSON.stringify(parsedFile.neuralNet); + return response.json({neuralNetworkToSave, neuralGeneratedFile}); + }) + .catch(next); +}); neuralNetworkRouter.get('/neuralnetwork/:networkID', bearerAuthMiddleware, (request, response, next) => { NeuralNetworkModel.findById(request.params.networkID) @@ -87,7 +115,6 @@ neuralNetworkRouter.put('/neuralnetwork/:networkID/:wavename', jsonParser, beare return NeuralNetworkModel.findById(request.params.networkID) .then(foundNet => { foundNeuralNetwork = Network.fromJSON(JSON.parse(foundNet.neuralNetwork)); - console.log(foundNeuralNetwork); return fsx.readFile(path) .then(data => { let parsedFile = waveParser(data); diff --git a/routes/wave-router.js b/routes/wave-router.js deleted file mode 100644 index 53e402b..0000000 --- a/routes/wave-router.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; -const {Router} = require('express'); -const httpErrors = require('http-errors'); -const multer = require('multer'); -const upload = multer({dest: `${__dirname}/../temp`}); -const bearerAuthMiddleware = require('../lib/middleware/bearer-middleware'); -const NeuralNetworkModel = require('../models/neuralNetwork'); -// think we need to export the network as json from the neural-net file -const neuralPredictor = require('../lib/neural-net'); - - -const WaveRouter = module.exports = new Router(); - -// user does NOT have to be logged in to upload a wave file and run it through the neural network -// upload adds a 'body' and 'file/files' object to the request -WaveRouter.post('/wave', upload.any(), (request, response, next) => { - if(request.files.length > 1){ - return next(new httpErrors(400, `__ERROR__ only one file can be uploaded at a time`)); - } - return new NeuralNetworkModel({ - neuralNetwork: neuralPredictor, - }) - .then(network => { - response.json(network._id); - });// we are not saving the neural network when a wave is posted (no .save()); only when the user is logged in can they save a network to their account, otherwise they get a template network they can train with the uploaded wave file -}); - - -// user DOES have to be logged in to retrieve or update existing neural networks instead of working off the basic template network provided -WaveRouter.get('/wave/:neuralNetworkID', bearerAuthMiddleware, (request, response, next) => {}); - -WaveRouter.put('/wave/:sampleID', bearerAuthMiddleware, (request, response, next) => {});