mirror of
https://github.com/DeviceFarmer/stf.git
synced 2026-04-19 08:33:24 +02:00
All services added back.
This commit is contained in:
63
res/app/components/stf/user/group/group-service.js
Normal file
63
res/app/components/stf/user/group/group-service.js
Normal file
@@ -0,0 +1,63 @@
|
||||
var _ = require('lodash')
|
||||
|
||||
module.exports = function GroupServiceFactory($rootScope, $http, socket, UserService) {
|
||||
var groupService = {
|
||||
}
|
||||
|
||||
groupService.group = (function () {
|
||||
var groupPromise = $http.get('/api/v1/group')
|
||||
.then(function (response) {
|
||||
return response.data.group
|
||||
})
|
||||
return function () {
|
||||
return groupPromise
|
||||
}
|
||||
})()
|
||||
|
||||
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.group().then(function (group) {
|
||||
group.members.push(data.serial)
|
||||
console.log('group.join', data)
|
||||
$rootScope.$digest()
|
||||
})
|
||||
}))
|
||||
|
||||
socket.on('group.leave', ownerFilter(function (data) {
|
||||
groupService.group().then(function (group) {
|
||||
_.pull(group.members, data.serial)
|
||||
console.log('group.leave', data)
|
||||
$rootScope.$digest()
|
||||
})
|
||||
}))
|
||||
|
||||
socket.on('device.absent', /* unfiltered */ function (data) {
|
||||
groupService.group().then(function (group) {
|
||||
_.pull(group.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
|
||||
}
|
||||
5
res/app/components/stf/user/group/index.js
Normal file
5
res/app/components/stf/user/group/index.js
Normal file
@@ -0,0 +1,5 @@
|
||||
module.exports = angular.module('stf/group', [
|
||||
require('stf/socket').name,
|
||||
require('stf/user').name
|
||||
])
|
||||
.factory('GroupService', require('./group-service'))
|
||||
2
res/app/components/stf/user/index.js
Normal file
2
res/app/components/stf/user/index.js
Normal file
@@ -0,0 +1,2 @@
|
||||
module.exports = angular.module('stf/user', [])
|
||||
.factory('UserService', require('./user-service'))
|
||||
13
res/app/components/stf/user/user-service.js
Normal file
13
res/app/components/stf/user/user-service.js
Normal file
@@ -0,0 +1,13 @@
|
||||
module.exports = function UserServiceFactory($http) {
|
||||
var userService = {
|
||||
}
|
||||
|
||||
userService.user = (function () {
|
||||
var userPromise = $http.get('/api/v1/user')
|
||||
return function () {
|
||||
return userPromise
|
||||
}
|
||||
})()
|
||||
|
||||
return userService
|
||||
}
|
||||
Reference in New Issue
Block a user