From dc076c6b155a563a68c7118cc0317d6206bb5079 Mon Sep 17 00:00:00 2001 From: Simo Kinnunen Date: Tue, 18 Mar 2014 17:59:12 +0900 Subject: [PATCH] Update device instead of upsert so that we don't lose data between unplugs. --- lib/db/api.js | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/lib/db/api.js b/lib/db/api.js index 25939522..b056d895 100644 --- a/lib/db/api.js +++ b/lib/db/api.js @@ -52,20 +52,24 @@ dbapi.saveDeviceLog = function(serial, entry) { } dbapi.saveDevice = function(serial, device) { - return db.run(r.table('devices').insert({ - serial: serial - , present: true - , provider: device.provider - , owner: null - , status: device.status - , ready: false - , statusChangedAt: r.now() - , createdAt: r.now() - , lastHeartbeatAt: r.now() - } - , { - upsert: true - })) + var data = { + present: true + , provider: device.provider + , owner: null + , status: device.status + , ready: false + , statusChangedAt: r.now() + , createdAt: r.now() + , lastHeartbeatAt: r.now() + } + return db.run(r.table('users').get(serial).update(data)) + .then(function(stats) { + if (stats.skipped) { + data.serial = serial + return db.run(r.table('devices').insert(data)) + } + return stats + }) } dbapi.saveDeviceStatus = function(serial, status) {