Save user settings to the database and embed them to the template for fast access.

This commit is contained in:
Simo Kinnunen
2014-07-04 22:59:29 +09:00
parent 332c7b6106
commit e13fc6701f
11 changed files with 152 additions and 141 deletions

View File

@@ -25,6 +25,7 @@ dbapi.saveUserAfterLogin = function(user) {
, lastLoggedInAt: r.now()
, createdAt: r.now()
, forwards: []
, settings: {}
}))
}
return stats
@@ -35,6 +36,18 @@ dbapi.loadUser = function(email) {
return db.run(r.table('users').get(email))
}
dbapi.updateUserSettings = function(email, changes) {
return db.run(r.table('users').get(email).update({
settings: changes
}))
}
dbapi.resetUserSettings = function(email) {
return db.run(r.table('users').get(email).update({
settings: r.literal({})
}))
}
dbapi.addUserForward = function(email, forward) {
var devicePort = forward.devicePort
return db.run(r.table('users').get(email).update({

View File

@@ -256,6 +256,13 @@ module.exports = function(options) {
new Promise(function(resolve) {
socket.on('disconnect', resolve)
// Settings
.on('user.settings.update', function(data) {
dbapi.updateUserSettings(user.email, data)
})
.on('user.settings.reset', function() {
dbapi.resetUserSettings(user.email)
})
// Touch events
.on('input.touchDown', createTouchHandler(wire.TouchDownMessage))
.on('input.touchMove', createTouchHandler(wire.TouchMoveMessage))