halloween: some unlocking bug fixes (appears a markModified was required)

This commit is contained in:
Tyler Renelle
2013-10-22 13:37:55 -07:00
parent d184237c79
commit 619c00fb5c
3 changed files with 4 additions and 7 deletions

View File

@@ -44,7 +44,7 @@ habitrpg.controller("UserCtrl", ['$rootScope', '$scope', '$location', 'User', '$
window.habitrpgShared.helpers.dotSet('preferences.' + pref, val, User.user); window.habitrpgShared.helpers.dotSet('preferences.' + pref, val, User.user);
} else { } else {
if (confirm("Purchase for 2 Gems?") !== true) return; if (confirm("Purchase for 2 Gems?") !== true) return;
if (User.user.balance < 0.5) return $rootScope.modals.moreGems = true; if (User.user.balance < 0.5) return $rootScope.modals.buyGems = true;
User.unlock(path); User.unlock(path);
} }
} }

View File

@@ -575,16 +575,13 @@ api.unlock = function(req, res) {
if (user.balance < 0.5) if (user.balance < 0.5)
return res.json(401, {err: 'Not enough gems'}); return res.json(401, {err: 'Not enough gems'});
// Provide deafult values if !user.purchased
_.defaults(user, {purchased:{}});
_.defaults(user.purchased, {skin:{}, hair:{}, ads: false});
var path = req.query.path; var path = req.query.path;
if (helpers.dotGet('purchased.' + path, user) === true) if (helpers.dotGet('purchased.' + path, user) === true)
return res.json(401, {err: 'User already purchased that'}); return res.json(401, {err: 'User already purchased that'});
user.balance -= 2; user.balance -= 2;
helpers.dotSet('purchased.' + path, true, user); helpers.dotSet('purchased.' + path, true, user);
user.__v++; user.__v++;
user.markModified('purchased');
user.save(function(err, saved){ user.save(function(err, saved){
if (err) res.json(500, {err:err}); if (err) res.json(500, {err:err});
res.send(200); res.send(200);

View File

@@ -71,8 +71,8 @@ var UserSchema = new Schema({
purchased: { purchased: {
ads: {type: Boolean, 'default': false}, ads: {type: Boolean, 'default': false},
skin: Schema.Types.Mixed, // eg, {skeleton: true, pumpkin: true, eb052b: true} skin: {type: Schema.Types.Mixed, 'default': {}}, // eg, {skeleton: true, pumpkin: true, eb052b: true}
hair: Schema.Types.Mixed hair: {type: Schema.Types.Mixed, 'default': {}}
}, },
flags: { flags: {