1
0
Fork 0
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:
Simo Kinnunen 2014-01-31 15:52:16 +09:00
parent f9da1cb0bf
commit 7c0e04c4b4
12 changed files with 102 additions and 22 deletions

View file

@ -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
} }

View file

@ -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) {

View file

@ -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
}) ])
})
}])
}) })

View file

@ -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': {

View 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
])
})

View file

@ -1,5 +0,0 @@
define(['./module'], function(mod) {
mod.factory('devices', ['io', function(io) {
return {}
}])
})

View 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
])
})

View file

@ -1,6 +1,8 @@
define([ define([
'./io' './socketService'
, './devices' , './deviceService'
, './groupService'
, './userService'
] ]
, function() { , function() {
} }

View file

@ -1,5 +0,0 @@
define(['./module', 'socket.io'], function(mod, io) {
mod.factory('io', [function() {
return io.connect()
}])
})

View file

@ -0,0 +1,8 @@
define(['./module', 'socket.io'], function(mod, io) {
function SocketServiceFactory() {
var socketService = io.connect()
return socketService
}
mod.factory('socketService', [SocketServiceFactory])
})

View 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])
})

View file

@ -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