Skip to content

Commit

Permalink
routes for users not logged in to get and post networks
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewbloom37 committed Feb 9, 2018
1 parent 92c382a commit 3e7dd36
Show file tree
Hide file tree
Showing 9 changed files with 62 additions and 238 deletions.
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
**/vendor/*
**/*.min.js
**/coverage/*
**/log.json
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
log.json

# Runtime data
pids
Expand Down
63 changes: 20 additions & 43 deletions __test__/neuralNetwork-router.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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}`);
})
Expand Down Expand Up @@ -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);
});
});
});
});
Binary file modified __test__/temp/transformed.wav
Binary file not shown.
3 changes: 1 addition & 2 deletions lib/neural-net.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ const myNetwork = new Network({
});

const predictor = (dataToProcess, network = myNetwork) => {
console.log(network);
dataToProcess.neuralTransformedArray = [];

const arrayToProcess = dataToProcess.neuralArray;
Expand Down Expand Up @@ -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;
};
Expand Down
160 changes: 6 additions & 154 deletions log.json

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion models/user.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
39 changes: 33 additions & 6 deletions routes/neuralNetwork-router.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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({
Expand All @@ -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)
Expand Down Expand Up @@ -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);
Expand Down
32 changes: 0 additions & 32 deletions routes/wave-router.js

This file was deleted.

0 comments on commit 3e7dd36

Please sign in to comment.