mirror of
https://github.com/DeviceFarmer/stf.git
synced 2026-04-21 13:25:17 +02:00
Add convenience flags for knowing if a device is usable, ready, and owned by us.
This commit is contained in:
@@ -58,6 +58,7 @@ dbapi.saveDevice = function(serial, device) {
|
||||
, provider: device.provider
|
||||
, owner: null
|
||||
, status: device.status
|
||||
, ready: false
|
||||
, statusChangedAt: r.now()
|
||||
, createdAt: r.now()
|
||||
, lastHeartbeatAt: r.now()
|
||||
@@ -89,6 +90,7 @@ dbapi.unsetDeviceOwner = function(serial, owner) {
|
||||
dbapi.setDeviceAbsent = function(serial) {
|
||||
return db.run(r.table('devices').get(serial).update({
|
||||
present: false
|
||||
, ready: false
|
||||
, lastHeartbeatAt: null
|
||||
}))
|
||||
}
|
||||
@@ -101,7 +103,8 @@ dbapi.setDeviceChannel = function(serial, channel) {
|
||||
|
||||
dbapi.saveDeviceIdentity = function(serial, identity) {
|
||||
return db.run(r.table('devices').get(serial).update({
|
||||
platform: identity.platform
|
||||
ready: true
|
||||
, platform: identity.platform
|
||||
, manufacturer: identity.manufacturer
|
||||
, operator: identity.operator
|
||||
, model: identity.model
|
||||
|
||||
@@ -139,7 +139,10 @@ module.exports = function(options) {
|
||||
.then(function(cursor) {
|
||||
return Promise.promisify(cursor.toArray, cursor)()
|
||||
.then(function(list) {
|
||||
list.forEach(datautil.applyData)
|
||||
list.forEach(function(device) {
|
||||
datautil.applyData(device)
|
||||
datautil.applyOwner(device, req.user)
|
||||
})
|
||||
res.json({
|
||||
success: true
|
||||
, devices: list
|
||||
@@ -158,9 +161,11 @@ module.exports = function(options) {
|
||||
dbapi.loadDevice(req.params.serial)
|
||||
.then(function(device) {
|
||||
if (device) {
|
||||
datautil.applyData(device)
|
||||
datautil.applyOwner(device, req.user)
|
||||
res.json({
|
||||
success: true
|
||||
, device: datautil.applyData(device)
|
||||
, device: device
|
||||
})
|
||||
}
|
||||
else {
|
||||
@@ -258,22 +263,34 @@ module.exports = function(options) {
|
||||
socket.emit('device.remove', {
|
||||
serial: message.serial
|
||||
, present: false
|
||||
, ready: false
|
||||
, lastHeartbeatAt: null
|
||||
, isOwnedByUser: false
|
||||
})
|
||||
})
|
||||
.on(wire.JoinGroupMessage, function(channel, message) {
|
||||
socket.emit('device.change', message)
|
||||
socket.emit('device.change', datautil.applyOwner({
|
||||
serial: message.serial
|
||||
, owner: message.owner
|
||||
}
|
||||
, user
|
||||
))
|
||||
})
|
||||
.on(wire.LeaveGroupMessage, function(channel, message) {
|
||||
socket.emit('device.change', {
|
||||
serial: message.serial
|
||||
, owner: null
|
||||
})
|
||||
socket.emit('device.change', datautil.applyOwner({
|
||||
serial: message.serial
|
||||
, owner: null
|
||||
}
|
||||
, user
|
||||
))
|
||||
})
|
||||
.on(wire.DeviceStatusMessage, function(channel, message) {
|
||||
socket.emit('device.change', message)
|
||||
})
|
||||
.on(wire.DeviceIdentityMessage, function(channel, message) {
|
||||
socket.emit('device.change', datautil.applyData(message))
|
||||
datautil.applyData(message)
|
||||
message.ready = true
|
||||
socket.emit('device.change', message)
|
||||
})
|
||||
.on(wire.TransactionProgressMessage, function(channel, message) {
|
||||
socket.emit('tx.progress', channel.toString(), message)
|
||||
|
||||
@@ -50,6 +50,11 @@ module.exports.applyData = function(device) {
|
||||
return device
|
||||
}
|
||||
|
||||
module.exports.applyOwner = function(device, user) {
|
||||
device.isOwnedByUser = !!device.owner && device.owner.email === user.email
|
||||
return device
|
||||
}
|
||||
|
||||
module.exports.middleware = function() {
|
||||
return express.static(pathutil.root('node_modules/stf-devices-db/data/small'))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user