From f8b9fe02c7dd2f87dd1963e7441292a3e9418ce9 Mon Sep 17 00:00:00 2001 From: Remy Lalanne Date: Thu, 7 Jan 2021 19:50:24 +0100 Subject: [PATCH] upsert does not modify author upon update. fixes #256 --- server-nodejs/routes/cruds.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/server-nodejs/routes/cruds.js b/server-nodejs/routes/cruds.js index 65f2f7f9..77efdb32 100644 --- a/server-nodejs/routes/cruds.js +++ b/server-nodejs/routes/cruds.js @@ -204,15 +204,10 @@ module.exports = function (app, routes) { */ upsert = function (req, res) { var nodes = Array.isArray(req.body) ? req.body : [req.body]; - var controlProperties = { - author: req.user.username, - time: Date.now() - } for (var i = 0; i < nodes.length; ++i) { if ('object' !== typeof nodes[i] || null === nodes[i]) { return httpStatus(res, 400, 'Upsert'); } - nodes[i] = Object.assign({}, controlProperties, nodes[i]); } nodes = unfoldIds(nodes); for(var i in nodes) { @@ -220,8 +215,15 @@ module.exports = function (app, routes) { delete nodes[i]._id; } } - - db.create(nodes, function(err, result) { + var array = []; + var controlProperties = { + author: req.user.username, + time: Date.now() + } + for (var i = 0; i < nodes.length; ++i) { + array.push(Object.assign({}, controlProperties, nodes[i])); + } + db.create(array, function(err, result) { if(err) { return httpStatus(res, 500, 'Upsert'); } @@ -232,7 +234,7 @@ module.exports = function (app, routes) { toUpdate.push(nodes[i]); } else { - created.push(nodes[i]); + created.push(array[i]); } } var response = getMultipleResponse(result);