mirror of
https://github.com/openstf/stf
synced 2025-10-03 17:59:28 +02:00
72 lines
1.7 KiB
JavaScript
72 lines
1.7 KiB
JavaScript
var uuid = require('node-uuid')
|
|
|
|
var wire = require('./')
|
|
|
|
var wireutil = {
|
|
global: '*ALL'
|
|
, makePrivateChannel: function() {
|
|
return uuid.v4(null, new Buffer(16)).toString('base64')
|
|
}
|
|
, toDeviceStatus: function(type) {
|
|
return wire.DeviceStatus[{
|
|
device: 'ONLINE'
|
|
, emulator: 'ONLINE'
|
|
, unauthorized: 'UNAUTHORIZED'
|
|
, offline: 'OFFLINE'
|
|
}[type]]
|
|
}
|
|
, toDeviceRequirements: function(requirements) {
|
|
return Object.keys(requirements).map(function(name) {
|
|
var item = requirements[name]
|
|
return new wire.DeviceRequirement(
|
|
name
|
|
, item.value
|
|
, wire.RequirementType[item.match.toUpperCase()]
|
|
)
|
|
})
|
|
}
|
|
, envelope: function(message) {
|
|
return new wire.Envelope(message.$code, message.encode()).encodeNB()
|
|
}
|
|
, transaction: function(channel, message) {
|
|
return new wire.Envelope(
|
|
message.$code
|
|
, message.encode()
|
|
, channel
|
|
)
|
|
.encodeNB()
|
|
}
|
|
, reply: function(source) {
|
|
var seq = 0
|
|
return {
|
|
okay: function(data, body) {
|
|
return wireutil.envelope(new wire.TransactionDoneMessage(
|
|
source
|
|
, seq++
|
|
, true
|
|
, data === null ? null : (data || 'success')
|
|
, body ? JSON.stringify(body) : null
|
|
))
|
|
}
|
|
, fail: function(data, body) {
|
|
return wireutil.envelope(new wire.TransactionDoneMessage(
|
|
source
|
|
, seq++
|
|
, false
|
|
, data || 'fail'
|
|
, body ? JSON.stringify(body) : null
|
|
))
|
|
}
|
|
, progress: function(data, progress) {
|
|
return wireutil.envelope(new wire.TransactionProgressMessage(
|
|
source
|
|
, seq++
|
|
, data
|
|
, ~~progress
|
|
))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = wireutil
|