Files
stf-DeviceFarmer/res/app/components/stf/user/group/group-service.js

59 lines
1.3 KiB
JavaScript

var Promise = require('bluebird')
module.exports = function GroupServiceFactory(
socket
, TransactionService
, TransactionError
) {
var groupService = {
}
groupService.invite = function (device) {
if (!device.usable) {
return Promise.reject(new Error('Device is not usable'))
}
var tx = TransactionService.create(device)
socket.emit('group.invite', device.channel, tx.channel, {
requirements: {
serial: {
value: device.serial
, match: 'exact'
}
}
})
return tx.promise
.then(function(result) {
return result.device
})
.catch(TransactionError, function() {
throw new Error('Device refused to join the group')
})
}
groupService.kick = function (device, force) {
if (!force && !device.usable) {
return Promise.reject(new Error('Device is not usable'))
}
var tx = TransactionService.create(device)
socket.emit('group.kick', device.channel, tx.channel, {
requirements: {
serial: {
value: device.serial
, match: 'exact'
}
}
})
return tx.promise
.then(function(result) {
return result.device
})
.catch(TransactionError, function() {
throw new Error('Device refused to join the group')
})
}
return groupService
}