mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 15:48:04 +01:00
Step towards working with new middleware, still broken
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// Generated by CoffeeScript 1.3.3
|
||||
var Guid, content, derby, get, getRoom, ready, view, _ref;
|
||||
var Guid, content, debug, derby, get, getRoom, ready, view, _ref;
|
||||
|
||||
derby = require('derby');
|
||||
|
||||
@@ -76,27 +76,41 @@ view.fn("silver", function(num) {
|
||||
}
|
||||
});
|
||||
|
||||
debug = function(obj, message) {
|
||||
return console.log(obj, "[debug] " + message);
|
||||
};
|
||||
|
||||
get('/:userId?', function(page, model, _arg) {
|
||||
var debuggingUsers, userId;
|
||||
var userId;
|
||||
userId = _arg.userId;
|
||||
debuggingUsers = parseInt(userId) < 40;
|
||||
if ((userId != null) && (Guid.isGuid(userId) || debuggingUsers)) {
|
||||
model.set('_session.userId', userId);
|
||||
return model.subscribe("users", function(err, users) {
|
||||
var newUser;
|
||||
userId = model.get('_userId');
|
||||
debug(userId, 'model.get _userId');
|
||||
if (model.get("users." + userId)) {
|
||||
debug(userId, 'model.get userId');
|
||||
return getRoom(page, model, userId);
|
||||
} else {
|
||||
newUser = {
|
||||
tasks: {}
|
||||
};
|
||||
return users.set(userId, newUser, function(err, path, value) {
|
||||
debug({
|
||||
err: err,
|
||||
path: path,
|
||||
value: value
|
||||
}, 'new user');
|
||||
return getRoom(page, model, userId);
|
||||
});
|
||||
}
|
||||
if (userId = model.get('_session.userId')) {
|
||||
return getRoom(page, model, userId);
|
||||
}
|
||||
userId = Guid.raw();
|
||||
model.set('_session.userId', userId);
|
||||
model.set("users." + userId, {});
|
||||
return getRoom(page, model, userId);
|
||||
});
|
||||
});
|
||||
|
||||
getRoom = function(page, model, userId) {
|
||||
return model.subscribe("users." + userId, function(err, user) {
|
||||
var task, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref1, _ref2, _ref3, _ref4;
|
||||
var user;
|
||||
user = model.at("users." + userId);
|
||||
model.ref('_user', user);
|
||||
debug(user, 'user');
|
||||
/* Set User Defaults
|
||||
*/
|
||||
|
||||
@@ -125,29 +139,16 @@ getRoom = function(page, model, userId) {
|
||||
model.refList("_todoList", "_user.tasks", "_user.todoIds");
|
||||
model.refList("_rewardList", "_user.tasks", "_user.rewardIds");
|
||||
if (!model.get('_user.tasks')) {
|
||||
_ref1 = content.defaultTasks.habits;
|
||||
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
|
||||
task = _ref1[_i];
|
||||
model.push('_habitList', task);
|
||||
}
|
||||
_ref2 = content.defaultTasks.dailys;
|
||||
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
|
||||
task = _ref2[_j];
|
||||
model.push('_dailyList', task);
|
||||
}
|
||||
_ref3 = content.defaultTasks.todos;
|
||||
for (_k = 0, _len2 = _ref3.length; _k < _len2; _k++) {
|
||||
task = _ref3[_k];
|
||||
model.push('_todoList', task);
|
||||
}
|
||||
_ref4 = content.defaultTasks.rewards;
|
||||
for (_l = 0, _len3 = _ref4.length; _l < _len3; _l++) {
|
||||
task = _ref4[_l];
|
||||
model.push('_rewardList', task);
|
||||
}
|
||||
model.push('_habitList', {
|
||||
type: 'habit',
|
||||
text: '1h Productive Work',
|
||||
notes: '<u>Habits: Constantly Track</u><br/>For some habits, it only makes sense to <b>gain</b> points (like this one).',
|
||||
value: 0,
|
||||
up: true,
|
||||
down: false
|
||||
});
|
||||
}
|
||||
return page.render();
|
||||
});
|
||||
};
|
||||
|
||||
ready(function(model) {
|
||||
|
||||
@@ -17,7 +17,9 @@ serverError = require('./serverError');
|
||||
|
||||
racer = require('derby/node_modules/racer');
|
||||
|
||||
racer.set('transports', ['xhr-polling']);
|
||||
racer.use(racer.logPlugin);
|
||||
|
||||
racer.set('bundle timeout', 10000);
|
||||
|
||||
expressApp = express();
|
||||
|
||||
|
||||
@@ -44,31 +44,42 @@ view.fn "silver", (num) ->
|
||||
|
||||
## ROUTES ##
|
||||
|
||||
debug = (obj, message) ->
|
||||
console.log obj, "[debug] #{message}"
|
||||
|
||||
|
||||
get '/:userId?', (page, model, {userId}) ->
|
||||
# Saved session
|
||||
# TODO: this doesn't check that the user at guid exists, and
|
||||
# will probably error since no user is created. Will only happen if
|
||||
# first access, but still. model.get(userId) and model.get("users.#{userId}") aren't
|
||||
# working for some reason
|
||||
debuggingUsers = (parseInt(userId) < 40) #these are users created before guid was in use, need to convert them to guid and get rid of this
|
||||
if userId? and (Guid.isGuid(userId) or debuggingUsers)# and model.get(userId)?
|
||||
model.set '_session.userId', userId
|
||||
return getRoom page, model, userId
|
||||
# # Saved session
|
||||
# # TODO: this doesn't check that the user at guid exists, and
|
||||
# # will probably error since no user is created. Will only happen if
|
||||
# # first access, but still. model.get(userId) and model.get("users.#{userId}") aren't
|
||||
# # working for some reason
|
||||
# debuggingUsers = (parseInt(userId) < 40) #these are users created before guid was in use, need to convert them to guid and get rid of this
|
||||
# if userId? and (Guid.isGuid(userId) or debuggingUsers)# and model.get(userId)?
|
||||
# model.set '_userId', userId
|
||||
# return getRoom page, model, userId
|
||||
|
||||
model.subscribe "users", (err, users) ->
|
||||
# The session middleware will assign a _userId automatically
|
||||
# Render page if a userId is already stored in session data
|
||||
if userId = model.get '_session.userId'
|
||||
userId = model.get '_userId'
|
||||
debug userId, 'model.get _userId'
|
||||
if model.get "users.#{userId}"
|
||||
debug userId, 'model.get userId'
|
||||
return getRoom page, model, userId
|
||||
|
||||
else
|
||||
# Otherwise, select a new userId and initialize user
|
||||
userId = Guid.raw()
|
||||
model.set '_session.userId', userId
|
||||
model.set "users.#{userId}", {}
|
||||
newUser = {
|
||||
tasks: {}
|
||||
}
|
||||
users.set userId, newUser, (err, path, value) ->
|
||||
debug {err:err, path:path, value:value}, 'new user'
|
||||
getRoom page, model, userId
|
||||
|
||||
getRoom = (page, model, userId) ->
|
||||
model.subscribe "users.#{userId}", (err, user) ->
|
||||
user = model.at("users.#{userId}")
|
||||
model.ref '_user', user
|
||||
debug user, 'user'
|
||||
|
||||
### Set User Defaults ###
|
||||
|
||||
@@ -90,10 +101,11 @@ getRoom = (page, model, userId) ->
|
||||
model.refList "_todoList", "_user.tasks", "_user.todoIds"
|
||||
model.refList "_rewardList", "_user.tasks", "_user.rewardIds"
|
||||
unless model.get('_user.tasks')
|
||||
model.push '_habitList', task for task in content.defaultTasks.habits
|
||||
model.push '_dailyList', task for task in content.defaultTasks.dailys
|
||||
model.push '_todoList', task for task in content.defaultTasks.todos
|
||||
model.push '_rewardList', task for task in content.defaultTasks.rewards
|
||||
model.push '_habitList', {type: 'habit', text: '1h Productive Work', notes: '<u>Habits: Constantly Track</u><br/>For some habits, it only makes sense to <b>gain</b> points (like this one).', value: 0, up: true, down: false }
|
||||
# model.push '_habitList', task for task in content.defaultTasks.habits
|
||||
# model.push '_dailyList', task for task in content.defaultTasks.dailys
|
||||
# model.push '_todoList', task for task in content.defaultTasks.todos
|
||||
# model.push '_rewardList', task for task in content.defaultTasks.rewards
|
||||
|
||||
page.render()
|
||||
|
||||
|
||||
@@ -9,8 +9,9 @@ serverError = require './serverError'
|
||||
## RACER CONFIGURATION ##
|
||||
|
||||
racer = require 'derby/node_modules/racer'
|
||||
racer.set('transports', ['xhr-polling'])
|
||||
#racer.set('bundle timeout', 10000)
|
||||
racer.use(racer.logPlugin)
|
||||
#racer.set('transports', ['xhr-polling'])
|
||||
racer.set('bundle timeout', 10000)
|
||||
|
||||
## SERVER CONFIGURATION ##
|
||||
|
||||
|
||||
Reference in New Issue
Block a user