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",
|
"requirejs": "~2.1.10",
|
||||||
"se7en-bootstrap-3": "git@ghe.amb.ca.local:stf/se7en-bootstrap-3.git",
|
"se7en-bootstrap-3": "git@ghe.amb.ca.local:stf/se7en-bootstrap-3.git",
|
||||||
"socket.io-client": "~0.9.16",
|
"socket.io-client": "~0.9.16",
|
||||||
"oboe": "~1.12.2"
|
"oboe": "~1.12.2",
|
||||||
|
"lodash": "~2.4.1"
|
||||||
},
|
},
|
||||||
"private": true
|
"private": true
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,6 +92,13 @@ module.exports = function(options) {
|
||||||
res.render('index')
|
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) {
|
app.get('/api/v1/devices', function(req, res) {
|
||||||
dbapi.loadDevices()
|
dbapi.loadDevices()
|
||||||
.then(function(cursor) {
|
.then(function(cursor) {
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
define(['./module', 'oboe'], function(mod, oboe) {
|
define(['./module', 'oboe'], function(mod, oboe) {
|
||||||
mod.controller('DeviceListCtrl', ['$scope', function($scope) {
|
function DeviceListCtrl($scope, deviceService) {
|
||||||
$scope.devices = []
|
$scope.devices = deviceService.devices
|
||||||
|
}
|
||||||
|
|
||||||
oboe('/api/v1/devices')
|
mod.controller('DeviceListCtrl'
|
||||||
.node('$devices[*]', function(devicesLoadedSoFar) {
|
, [ '$scope'
|
||||||
$scope.$apply(function() {
|
, 'deviceService'
|
||||||
$scope.devices = devicesLoadedSoFar
|
, DeviceListCtrl
|
||||||
})
|
])
|
||||||
})
|
|
||||||
}])
|
|
||||||
})
|
})
|
||||||
|
|
|
@ -4,6 +4,7 @@ require.config({
|
||||||
, 'angular-route': '../lib/angular-route/angular-route'
|
, 'angular-route': '../lib/angular-route/angular-route'
|
||||||
, 'socket.io': '../lib/socket.io-client/dist/socket.io'
|
, 'socket.io': '../lib/socket.io-client/dist/socket.io'
|
||||||
, 'oboe': '../lib/oboe/dist/oboe-browser'
|
, 'oboe': '../lib/oboe/dist/oboe-browser'
|
||||||
|
, 'lodash': '../lib/lodash/dist/lodash'
|
||||||
}
|
}
|
||||||
, shim: {
|
, shim: {
|
||||||
'angular': {
|
'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([
|
define([
|
||||||
'./io'
|
'./socketService'
|
||||||
, './devices'
|
, './deviceService'
|
||||||
|
, './groupService'
|
||||||
|
, './userService'
|
||||||
]
|
]
|
||||||
, function() {
|
, 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
|
ul
|
||||||
li(ng-repeat='device in devices track by device.serial')
|
li(ng-repeat='device in devices track by device.serial')
|
||||||
span {{ 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