mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-04-14 19:56:23 +00:00
moving some schema stuff around
This commit is contained in:
parent
ef73281f9e
commit
1a68f00fb2
6 changed files with 69 additions and 56 deletions
|
|
@ -1,7 +1,9 @@
|
|||
// Generated by CoffeeScript 1.3.3
|
||||
var userSchema;
|
||||
var content, userSchema;
|
||||
|
||||
module.exports.userSchema = userSchema = {
|
||||
content = require('./content');
|
||||
|
||||
userSchema = {
|
||||
balance: 2,
|
||||
stats: {
|
||||
money: 0,
|
||||
|
|
@ -23,6 +25,31 @@ module.exports.userSchema = userSchema = {
|
|||
rewardIds: []
|
||||
};
|
||||
|
||||
module.exports.newUserObject = function() {
|
||||
var guid, newUser, task, _i, _len, _ref;
|
||||
newUser = require('node.extend')(true, {}, userSchema);
|
||||
_ref = content.defaultTasks;
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
task = _ref[_i];
|
||||
guid = task.id = require('derby/node_modules/racer').uuid();
|
||||
newUser.tasks[guid] = task;
|
||||
switch (task.type) {
|
||||
case 'habit':
|
||||
newUser.habitIds.push(guid);
|
||||
break;
|
||||
case 'daily':
|
||||
newUser.dailyIds.push(guid);
|
||||
break;
|
||||
case 'todo':
|
||||
newUser.todoIds.push(guid);
|
||||
break;
|
||||
case 'reward':
|
||||
newUser.rewardIds.push(guid);
|
||||
}
|
||||
}
|
||||
return newUser;
|
||||
};
|
||||
|
||||
module.exports.updateSchema = function(model) {
|
||||
return;
|
||||
return model.fetch('users', function(err, users) {
|
||||
|
|
|
|||
|
|
@ -14,33 +14,13 @@ module.exports.setRequest = function(r) {
|
|||
};
|
||||
|
||||
module.exports.newUserAndPurl = function() {
|
||||
var acceptableUid, guid, model, newUser, sess, task, uidParam, _i, _len, _ref;
|
||||
var acceptableUid, model, sess, uidParam;
|
||||
model = req.getModel();
|
||||
sess = model.session;
|
||||
uidParam = req.url.split('/')[1];
|
||||
if (!sess.userId) {
|
||||
sess.userId = derby.uuid();
|
||||
newUser = require('node.extend')(true, {}, schema.userSchema);
|
||||
_ref = content.defaultTasks;
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
task = _ref[_i];
|
||||
guid = task.id = require('derby/node_modules/racer').uuid();
|
||||
newUser.tasks[guid] = task;
|
||||
switch (task.type) {
|
||||
case 'habit':
|
||||
newUser.habitIds.push(guid);
|
||||
break;
|
||||
case 'daily':
|
||||
newUser.dailyIds.push(guid);
|
||||
break;
|
||||
case 'todo':
|
||||
newUser.todoIds.push(guid);
|
||||
break;
|
||||
case 'reward':
|
||||
newUser.rewardIds.push(guid);
|
||||
}
|
||||
}
|
||||
model.set("users." + sess.userId, newUser);
|
||||
model.set("users." + sess.userId, schema.newUserObject());
|
||||
}
|
||||
acceptableUid = require('guid').isGuid(uidParam) || (uidParam === '3');
|
||||
if (acceptableUid && sess.userId !== uidParam && !(sess.habitRpgAuth && sess.habitRpgAuth.facebook)) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
content = require './content'
|
||||
|
||||
module.exports.userSchema = userSchema = {
|
||||
userSchema = {
|
||||
balance: 2
|
||||
stats: { money: 0, exp: 0, lvl: 1, hp: 50 }
|
||||
items: { itemsEnabled: false, armor: 0, weapon: 0, rerollsRemaining: 5 }
|
||||
|
|
@ -10,6 +11,19 @@ module.exports.userSchema = userSchema = {
|
|||
completedIds: []
|
||||
rewardIds: []
|
||||
}
|
||||
|
||||
module.exports.newUserObject = ->
|
||||
# deep clone, else further new users get duplicate objects
|
||||
newUser = require('node.extend')(true, {}, userSchema)
|
||||
for task in content.defaultTasks
|
||||
guid = task.id = require('derby/node_modules/racer').uuid()
|
||||
newUser.tasks[guid] = task
|
||||
switch task.type
|
||||
when 'habit' then newUser.habitIds.push guid
|
||||
when 'daily' then newUser.dailyIds.push guid
|
||||
when 'todo' then newUser.todoIds.push guid
|
||||
when 'reward' then newUser.rewardIds.push guid
|
||||
return newUser
|
||||
|
||||
module.exports.updateSchema = (model) ->
|
||||
return # not using, will revisit this later
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ content = require('../app/content')
|
|||
req = undefined
|
||||
module.exports.setRequest = (r) ->
|
||||
req = r
|
||||
|
||||
module.exports.newUserAndPurl = () ->
|
||||
|
||||
module.exports.newUserAndPurl = ->
|
||||
model = req.getModel()
|
||||
sess = model.session
|
||||
uidParam = req.url.split('/')[1]
|
||||
|
|
@ -16,17 +16,7 @@ module.exports.newUserAndPurl = () ->
|
|||
# They get to play around before creating a new account.
|
||||
unless sess.userId
|
||||
sess.userId = derby.uuid()
|
||||
# deep clone, else further new users get duplicate objects
|
||||
newUser = require('node.extend')(true, {}, schema.userSchema)
|
||||
for task in content.defaultTasks
|
||||
guid = task.id = require('derby/node_modules/racer').uuid()
|
||||
newUser.tasks[guid] = task
|
||||
switch task.type
|
||||
when 'habit' then newUser.habitIds.push guid
|
||||
when 'daily' then newUser.dailyIds.push guid
|
||||
when 'todo' then newUser.todoIds.push guid
|
||||
when 'reward' then newUser.rewardIds.push guid
|
||||
model.set "users.#{sess.userId}", newUser
|
||||
model.set "users.#{sess.userId}", schema.newUserObject()
|
||||
|
||||
## -------- (2) PURL --------
|
||||
# eg, http://localhost/{guid}), legacy - will be removed eventually
|
||||
|
|
@ -37,7 +27,6 @@ module.exports.newUserAndPurl = () ->
|
|||
sess.userId = uidParam
|
||||
|
||||
module.exports.setupEveryauth = (everyauth) ->
|
||||
|
||||
everyauth.debug = true
|
||||
|
||||
everyauth.everymodule.findUserById (id, callback) ->
|
||||
|
|
|
|||
|
|
@ -4,3 +4,4 @@
|
|||
--growl
|
||||
--debug
|
||||
--compilers coffee:coffee-script
|
||||
--globals io
|
||||
|
|
@ -1,23 +1,25 @@
|
|||
{expect, calls} = require 'derby/node_modules/racer/test/util' #TODO what is this?
|
||||
{DetachedModel: Model, ResMock} = require 'derby/test/mocks'
|
||||
{expect} = require 'derby/node_modules/racer/test/util'
|
||||
{BrowserModel: Model} = require 'derby/node_modules/racer/test/util/model'
|
||||
scoring = require '../src/app/scoring'
|
||||
schema = require '../src/app/schema'
|
||||
_ = require '../public/js/underscore-min'
|
||||
|
||||
## mock model
|
||||
#model = {
|
||||
# data: {}
|
||||
# set: (path, val) ->
|
||||
# @data[path] = val
|
||||
# get: (path) ->
|
||||
# @data[path]
|
||||
# }
|
||||
|
||||
describe 'Scoring', ->
|
||||
user = null
|
||||
model = null
|
||||
|
||||
it 'should save initial user correctly', (done) ->
|
||||
console.log 'teest'
|
||||
|
||||
beforeEach ->
|
||||
model = new Model
|
||||
model.set '_user', {hp:50}
|
||||
model.set '_user', schema.newUserObject()
|
||||
|
||||
it 'should set user defaults correctly', ->
|
||||
user = model.get '_user'
|
||||
expect user.get('hp').to.eql 5
|
||||
done()
|
||||
expect(user.stats).to.eql { money: 0, exp: 0, lvl: 1, hp: 50 }
|
||||
expect(user.items).to.eql { itemsEnabled: false, armor: 0, weapon: 0, rerollsRemaining: 5 }
|
||||
expect(user.balance).to.eql 2
|
||||
expect(_.size(user.tasks)).to.eql 9
|
||||
expect(_.size(user.habitIds)).to.eql 3
|
||||
expect(_.size(user.dailyIds)).to.eql 3
|
||||
expect(_.size(user.todoIds)).to.eql 1
|
||||
expect(_.size(user.completedIds)).to.eql 0
|
||||
expect(_.size(user.rewardIds)).to.eql 2
|
||||
|
|
|
|||
Loading…
Reference in a new issue