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) {