mirror of
https://github.com/openstf/stf
synced 2025-10-04 10:19:30 +02:00
Ensure that device is saved before probing it.
This commit is contained in:
parent
483bf1be7a
commit
b84968c08c
2 changed files with 28 additions and 8 deletions
|
@ -1,10 +1,13 @@
|
|||
var r = require('rethinkdb')
|
||||
var Promise = require('bluebird')
|
||||
|
||||
var db = require('./')
|
||||
var wire = require('../wire')
|
||||
var wireutil = require('../wire/util')
|
||||
|
||||
module.exports.saveUserAfterLogin = function(user) {
|
||||
var dbapi = Object.create(null)
|
||||
|
||||
dbapi.saveUserAfterLogin = function(user) {
|
||||
return db.run(r.table('users').get(user.email).update({
|
||||
name: user.name
|
||||
, lastLoggedInAt: r.now()
|
||||
|
@ -23,11 +26,11 @@ module.exports.saveUserAfterLogin = function(user) {
|
|||
})
|
||||
}
|
||||
|
||||
module.exports.loadUser = function(email) {
|
||||
dbapi.loadUser = function(email) {
|
||||
return db.run(r.table('users').get(email))
|
||||
}
|
||||
|
||||
module.exports.saveDeviceLog = function(serial, entry) {
|
||||
dbapi.saveDeviceLog = function(serial, entry) {
|
||||
return db.run(r.table('logs').insert({
|
||||
serial: entry.serial
|
||||
, timestamp: r.epochTime(entry.timestamp)
|
||||
|
@ -38,7 +41,7 @@ module.exports.saveDeviceLog = function(serial, entry) {
|
|||
}))
|
||||
}
|
||||
|
||||
module.exports.saveDeviceStatus = function(serial, status) {
|
||||
dbapi.saveDeviceStatus = function(serial, status) {
|
||||
return db.run(r.table('devices').get(serial).update({
|
||||
status: status.status
|
||||
, provider: status.provider
|
||||
|
@ -58,7 +61,7 @@ module.exports.saveDeviceStatus = function(serial, status) {
|
|||
})
|
||||
}
|
||||
|
||||
module.exports.saveDeviceIdentity = function(serial, identity) {
|
||||
dbapi.saveDeviceIdentity = function(serial, identity) {
|
||||
return db.run(r.table('devices').get(serial).update({
|
||||
platform: identity.platform
|
||||
, manufacturer: identity.manufacturer
|
||||
|
@ -71,10 +74,24 @@ module.exports.saveDeviceIdentity = function(serial, identity) {
|
|||
}))
|
||||
}
|
||||
|
||||
module.exports.loadDevices = function() {
|
||||
dbapi.loadDevices = function() {
|
||||
return db.run(r.table('devices'))
|
||||
}
|
||||
|
||||
module.exports.loadDevice = function(serial) {
|
||||
dbapi.loadDevice = function(serial) {
|
||||
return db.run(r.table('devices').get(serial))
|
||||
}
|
||||
|
||||
dbapi.ensureDeviceSaved = function(serial) {
|
||||
return dbapi.loadDevice(serial)
|
||||
.then(function(device) {
|
||||
if (!device) {
|
||||
return Promise.delay(100).then(function() {
|
||||
return dbapi.loadDevice(serial)
|
||||
})
|
||||
}
|
||||
return device
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = dbapi
|
||||
|
|
|
@ -43,7 +43,10 @@ module.exports = function(options) {
|
|||
appDealer.send([channel, data])
|
||||
})
|
||||
.on(wire.DevicePokeMessage, function(channel, message) {
|
||||
devDealer.send([message.channel, wireutil.makeProbeMessage()])
|
||||
dbapi.ensureDeviceSaved(message.serial)
|
||||
.then(function() {
|
||||
devDealer.send([message.channel, wireutil.makeProbeMessage()])
|
||||
})
|
||||
})
|
||||
.on(wire.DeviceIdentityMessage, function(channel, message) {
|
||||
dbapi.saveDeviceIdentity(message.serial, message)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue