1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-06 03:50:04 +02:00
OpenSTF/res/app/scripts/services/GroupService.js
2014-02-06 15:11:26 +09:00

55 lines
1.4 KiB
JavaScript

define(['./_module', 'lodash'], function(app, _) {
function GroupServiceFactory($rootScope, socket, userService) {
var groupService = {
members: []
}
userService.user().then(function(user) {
function ownerFilter(listener) {
return function(data) {
if (data.owner.email === user.email) {
listener()
}
}
}
socket.on('group.join', ownerFilter(function(data) {
groupService.members.push(data.serial)
console.log('group.join', data)
$rootScope.$digest()
}))
socket.on('group.leave', ownerFilter(function(data) {
_.pull(groupService.members, data.serial)
console.log('group.leave', data)
$rootScope.$digest()
}))
socket.on('device.absent', /* unfiltered */ function(data) {
_.pull(groupService.members, data.serial)
$rootScope.$digest()
})
})
groupService.invite = function(requirements) {
userService.user().then(function(user) {
socket.emit('group.invite', requirements)
})
}
groupService.kick = function(requirements) {
userService.user().then(function(user) {
socket.emit('group.kick', requirements)
})
}
return groupService
}
app.factory('GroupService'
, [ '$rootScope'
, 'SocketService'
, 'UserService'
, GroupServiceFactory
])
})