diff --git a/models/file.js b/models/file.js index fcbf447896595db6259094f498dcd6c9b656760f..949d83b3ec0010af5ae43335a9ba32e7b655e2c5 100644 --- a/models/file.js +++ b/models/file.js @@ -33,6 +33,6 @@ var fileSchema = new Schema({ dimensions: { type: Schema.Types.Mixed }, user: { type: Schema.Types.ObjectId, ref: 'User', required: true }, date: { type: Date, default: Date.now } -}); +}, { versionKey: false }); module.exports = mongoose.model('File', fileSchema); diff --git a/models/node.js b/models/node.js index 340aa107a832e6da41ed6fb55885c7abcd1eadd0..990fc713b1f228fc0d2cfa581f7734865fa27817 100644 --- a/models/node.js +++ b/models/node.js @@ -33,7 +33,7 @@ var nodeSchema = new Schema({ endpoint: { type: String, required: true, unique: true }, config: { type: Schema.Types.Mixed, default: {} }, simulators: [{ type: Schema.Types.Mixed, default: [] }] -}); +}, { versionKey: false }); nodeSchema.post('save', function() { // remove old file diff --git a/models/project.js b/models/project.js index 4499282d01b0311c78802e787868dc574308dbf8..f75e490763d22c3ba91289cd19bcd6575c48cf76 100644 --- a/models/project.js +++ b/models/project.js @@ -33,7 +33,7 @@ var projectSchema = new Schema({ user: { type: Schema.Types.ObjectId, ref: 'User', required: true }, visualizations: [{ type: Schema.Types.ObjectId, ref: 'Visualization', default: [] }], simulation: { type: Schema.Types.ObjectId, ref: 'Simulation', required: true } -}); +}, { versionKey: false }); projectSchema.pre('remove', function(callback) { // delete all visualizations belonging to this project diff --git a/models/simulation.js b/models/simulation.js index 88b353293fa8e5564bf16c24c3195c95af1734a4..2e5bb6a8a5a5875a18393d18a41ab14f6b6a17ce 100644 --- a/models/simulation.js +++ b/models/simulation.js @@ -33,6 +33,6 @@ var simulationSchema = new Schema({ models: { type: Array, default: [] }, projects: [{ type: Schema.Types.ObjectId, ref: 'Project', default: [] }], user: { type: Schema.Types.ObjectId, ref: 'User', required: true }, -}); +}, { versionKey: false }); module.exports = mongoose.model('Simulation', simulationSchema); diff --git a/models/user.js b/models/user.js index 7503012ea1225ab34102d92dedb55a2416112553..aff470c6107ce77a2b24f96c057fb2351d93c767 100644 --- a/models/user.js +++ b/models/user.js @@ -38,7 +38,7 @@ var userSchema = new Schema({ mail: { type: String, default: "" }, simulations: [{ type: Schema.Types.ObjectId, ref: 'Simulation', default: [] }], files: [{type: Schema.Types.ObjectId, ref: 'File', default: [] }] -}); +}, { versionKey: false }); userSchema.methods.verifyPassword = function(password, callback) { bcrypt.compare(password, this.password, function(err, isMatch) { diff --git a/models/visualization.js b/models/visualization.js index c2eb0f9a506a4c81c7ba0d0623e7b10cfb1c1117..53d42e1c08836529d68d9912a32ba4b97683e969 100644 --- a/models/visualization.js +++ b/models/visualization.js @@ -31,6 +31,6 @@ var visualizationSchema = new Schema({ widgets: { type: Array, default: [] }, grid: { type: Number, default: 1 }, user: { type: Schema.Types.ObjectId, ref: 'User', required: true } -}); +}, { versionKey: false }); module.exports = mongoose.model('Visualization', visualizationSchema); diff --git a/routes/nodes.js b/routes/nodes.js index 97aaef22bf240013970cdce80fc7f793c070228b..6c1347b2d15ea36e324d57dbe2b97558d64082fe 100644 --- a/routes/nodes.js +++ b/routes/nodes.js @@ -48,6 +48,11 @@ router.get('/nodes', function(req, res) { }); router.post('/nodes', function(req, res) { + // delete id if equals 'null' + if (req.body.node._id === null) { + delete req.body.node._id; + } + // create new node const node = new Node(req.body.node); diff --git a/routes/projects.js b/routes/projects.js index 7d025ba65eda46b23a7a237ae79097da7b784309..bace190c4fb0cf96b20970ddd278903006c21a5f 100644 --- a/routes/projects.js +++ b/routes/projects.js @@ -50,6 +50,11 @@ router.get('/projects', /*auth.validateRole('project', 'read'),*/ function(req, }); router.post('/projects', /*auth.validateRole('project', 'create'),*/ function(req, res) { + // delete id if equals 'null' + if (req.body.project._id === null) { + delete req.body.project._id; + } + // create new project req.body.project.user = req.decoded._id; const project = new Project(req.body.project); diff --git a/routes/simulations.js b/routes/simulations.js index 34097656715ad45374304ee469dbdc240ccf9b40..f079d10636225e46f256c245cad37424f01f4a0d 100644 --- a/routes/simulations.js +++ b/routes/simulations.js @@ -48,6 +48,11 @@ router.get('/simulations', /*auth.validateRole('simulation', 'read'),*/ function }); router.post('/simulations', /*auth.validateRole('simulation', 'create'),*/ function(req, res) { + // delete id if equals 'null' + if (req.body.simulation._id === null) { + delete req.body.simulation._id; + } + // create new simulation req.body.simulation.user = req.decoded._id; const simulation = new Simulation(req.body.simulation); diff --git a/routes/visualizations.js b/routes/visualizations.js index f64fcfecb08d9314d5253612d23d92439880e8c6..4c6b5c6b38cf6668ce32c317707f2e48ee70ca8a 100644 --- a/routes/visualizations.js +++ b/routes/visualizations.js @@ -57,6 +57,10 @@ router.post('/visualizations', /*auth.validateRole('visualization', 'create'),*/ } // create new visualization + if (req.body.visualization._id === null) { + delete req.body.visualization._id; + } + req.body.visualization.user = req.decoded._id; const visualization = new Visualization(req.body.visualization);