diff --git a/lib/server/websocket.js b/lib/server/websocket.js index b3ad9df59af..4dbe5aa325f 100644 --- a/lib/server/websocket.js +++ b/lib/server/websocket.js @@ -403,22 +403,29 @@ function init (env, ctx, server) { } // if not found create new record console.log(LOG_DEDUP + 'Adding new record'); - ctx.store.collection(collection).insert(data.data, function insertResult (err, doc) { + ctx.store.collection(collection).insertOne(data.data, function insertResult (err, doc) { if (err != null && err.message) { console.log('treatments data insertion error: ', err.message); return; } - ctx.bus.emit('data-update', { - type: data.collection - , op: 'update' - , changes: ctx.ddata.processRawDataForRuntime(doc.ops) - }); - - if (callback) { - callback(doc.ops); - } - ctx.bus.emit('data-received'); + if (!err) { + ctx.store.collection(collection).findOne({ '_id': doc.insertedId } + , function(err, results) { + if (!err && results !== null) { + ctx.bus.emit('data-update', { + type: data.collection + , op: 'update' + , changes: ctx.ddata.processRawDataForRuntime([results]) + }); + + if (callback) { + callback([results]); + } + ctx.bus.emit('data-received'); + } + }); + } }); }); }); @@ -451,40 +458,54 @@ function init (env, ctx, server) { }); - ctx.store.collection(collection).insert(data.data, function insertResult (err, doc) { + ctx.store.collection(collection).insertOne(data.data, function insertResult (err, doc) { if (err != null && err.message) { console.log('devicestatus insertion error: ', err.message); return; } - ctx.bus.emit('data-update', { - type: 'devicestatus' - , op: 'update' - , changes: ctx.ddata.processRawDataForRuntime(doc.ops) - }); - - if (callback) { - callback(doc.ops); - } - ctx.bus.emit('data-received'); + if (!err) { + ctx.store.collection(collection).findOne({ '_id': doc.insertedId } + , function(err, results) { + if (!err && results !== null) { + ctx.bus.emit('data-update', { + type: data.collection + , op: 'update' + , changes: ctx.ddata.processRawDataForRuntime([results]) + }); + + if (callback) { + callback([results]); + } + ctx.bus.emit('data-received'); + } + }); + } }); } else { - ctx.store.collection(collection).insert(data.data, function insertResult (err, doc) { + ctx.store.collection(collection).insertOne(data.data, function insertResult (err, doc) { if (err != null && err.message) { console.log(data.collection + ' insertion error: ', err.message); return; } - ctx.bus.emit('data-update', { - type: data.collection - , op: 'update' - , changes: ctx.ddata.processRawDataForRuntime(doc.ops) - }); - - if (callback) { - callback(doc.ops); - } - ctx.bus.emit('data-received'); + if (!err) { + ctx.store.collection(collection).findOne({ '_id': doc.insertedId } + , function(err, results) { + if (!err && results !== null) { + ctx.bus.emit('data-update', { + type: data.collection + , op: 'update' + , changes: ctx.ddata.processRawDataForRuntime([results]) + }); + + if (callback) { + callback([results]); + } + ctx.bus.emit('data-received'); + } + }); + } }); } });