mirror of
https://github.com/openstf/stf
synced 2025-10-04 18:29:17 +02:00
Add user service and reorganize services. Messy commit but it's a start.
This commit is contained in:
parent
f9da1cb0bf
commit
7c0e04c4b4
12 changed files with 102 additions and 22 deletions
|
@ -7,7 +7,8 @@
|
|||
"requirejs": "~2.1.10",
|
||||
"se7en-bootstrap-3": "git@ghe.amb.ca.local:stf/se7en-bootstrap-3.git",
|
||||
"socket.io-client": "~0.9.16",
|
||||
"oboe": "~1.12.2"
|
||||
"oboe": "~1.12.2",
|
||||
"lodash": "~2.4.1"
|
||||
},
|
||||
"private": true
|
||||
}
|
||||
|
|
|
@ -92,6 +92,13 @@ module.exports = function(options) {
|
|||
res.render('index')
|
||||
})
|
||||
|
||||
app.get('/api/v1/user', function(req, res) {
|
||||
res.json({
|
||||
success: true
|
||||
, user: req.session.jwt
|
||||
})
|
||||
})
|
||||
|
||||
app.get('/api/v1/devices', function(req, res) {
|
||||
dbapi.loadDevices()
|
||||
.then(function(cursor) {
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
define(['./module', 'oboe'], function(mod, oboe) {
|
||||
mod.controller('DeviceListCtrl', ['$scope', function($scope) {
|
||||
$scope.devices = []
|
||||
function DeviceListCtrl($scope, deviceService) {
|
||||
$scope.devices = deviceService.devices
|
||||
}
|
||||
|
||||
oboe('/api/v1/devices')
|
||||
.node('$devices[*]', function(devicesLoadedSoFar) {
|
||||
$scope.$apply(function() {
|
||||
$scope.devices = devicesLoadedSoFar
|
||||
})
|
||||
})
|
||||
}])
|
||||
mod.controller('DeviceListCtrl'
|
||||
, [ '$scope'
|
||||
, 'deviceService'
|
||||
, DeviceListCtrl
|
||||
])
|
||||
})
|
||||
|
|
|
@ -4,6 +4,7 @@ require.config({
|
|||
, 'angular-route': '../lib/angular-route/angular-route'
|
||||
, 'socket.io': '../lib/socket.io-client/dist/socket.io'
|
||||
, 'oboe': '../lib/oboe/dist/oboe-browser'
|
||||
, 'lodash': '../lib/lodash/dist/lodash'
|
||||
}
|
||||
, shim: {
|
||||
'angular': {
|
||||
|
|
21
res/app/scripts/services/deviceService.js
Normal file
21
res/app/scripts/services/deviceService.js
Normal file
|
@ -0,0 +1,21 @@
|
|||
define(['./module', 'oboe'], function(mod, oboe) {
|
||||
function DevicesServiceFactory($rootScope, socketService) {
|
||||
var deviceService = {
|
||||
devices: []
|
||||
}
|
||||
|
||||
oboe('/api/v1/devices')
|
||||
.node('devices[*]', function(device) {
|
||||
deviceService.devices.push(device)
|
||||
$rootScope.$digest()
|
||||
})
|
||||
|
||||
return deviceService
|
||||
}
|
||||
|
||||
mod.factory('deviceService'
|
||||
, [ '$rootScope'
|
||||
, 'socketService'
|
||||
, DevicesServiceFactory
|
||||
])
|
||||
})
|
|
@ -1,5 +0,0 @@
|
|||
define(['./module'], function(mod) {
|
||||
mod.factory('devices', ['io', function(io) {
|
||||
return {}
|
||||
}])
|
||||
})
|
33
res/app/scripts/services/groupService.js
Normal file
33
res/app/scripts/services/groupService.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
define(['./module', 'lodash'], function(mod, _) {
|
||||
function GroupServiceFactory($rootScope, socket) {
|
||||
var groupService = {
|
||||
members: []
|
||||
}
|
||||
|
||||
socket.on('group.join', function(data) {
|
||||
groupService.members.push(data.serial)
|
||||
$rootScope.$digest()
|
||||
})
|
||||
|
||||
socket.on('group.left', function(data) {
|
||||
_.pull(groupService.members, data.serial)
|
||||
$rootScope.$digest()
|
||||
})
|
||||
|
||||
groupService.invite = function(requirements) {
|
||||
socket.emit('group.invite', requirements)
|
||||
}
|
||||
|
||||
groupService.kick = function(requirements) {
|
||||
socket.emit('group.kick', requirements)
|
||||
}
|
||||
|
||||
return groupService
|
||||
}
|
||||
|
||||
mod.factory('groupService'
|
||||
, [ '$rootScope'
|
||||
, 'socket'
|
||||
, GroupServiceFactory
|
||||
])
|
||||
})
|
|
@ -1,6 +1,8 @@
|
|||
define([
|
||||
'./io'
|
||||
, './devices'
|
||||
'./socketService'
|
||||
, './deviceService'
|
||||
, './groupService'
|
||||
, './userService'
|
||||
]
|
||||
, function() {
|
||||
}
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
define(['./module', 'socket.io'], function(mod, io) {
|
||||
mod.factory('io', [function() {
|
||||
return io.connect()
|
||||
}])
|
||||
})
|
8
res/app/scripts/services/socketService.js
Normal file
8
res/app/scripts/services/socketService.js
Normal file
|
@ -0,0 +1,8 @@
|
|||
define(['./module', 'socket.io'], function(mod, io) {
|
||||
function SocketServiceFactory() {
|
||||
var socketService = io.connect()
|
||||
return socketService
|
||||
}
|
||||
|
||||
mod.factory('socketService', [SocketServiceFactory])
|
||||
})
|
16
res/app/scripts/services/userService.js
Normal file
16
res/app/scripts/services/userService.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
define(['./module'], function(mod) {
|
||||
function UserServiceFactory($http) {
|
||||
var userService = {
|
||||
info: {}
|
||||
}
|
||||
|
||||
$http.get('/api/v1/user')
|
||||
.success(function(data) {
|
||||
userService.info = data.user
|
||||
})
|
||||
|
||||
return userService
|
||||
}
|
||||
|
||||
mod.factory('userService', ['$http', UserServiceFactory])
|
||||
})
|
|
@ -3,3 +3,5 @@ h1 Devices
|
|||
ul
|
||||
li(ng-repeat='device in devices track by device.serial')
|
||||
span {{ device.serial }}
|
||||
button(ng-click="invite(device)") invite
|
||||
button(ng-click="kick(device)") kick
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue