diff --git a/public/js/controllers/userCtrl.js b/public/js/controllers/userCtrl.js index d441a23dbf..48d674897c 100644 --- a/public/js/controllers/userCtrl.js +++ b/public/js/controllers/userCtrl.js @@ -44,7 +44,7 @@ habitrpg.controller("UserCtrl", ['$rootScope', '$scope', '$location', 'User', '$ window.habitrpgShared.helpers.dotSet('preferences.' + pref, val, User.user); } else { 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); } } diff --git a/src/controllers/user.js b/src/controllers/user.js index 8c76ac6001..b362408244 100644 --- a/src/controllers/user.js +++ b/src/controllers/user.js @@ -575,16 +575,13 @@ api.unlock = function(req, res) { if (user.balance < 0.5) 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; if (helpers.dotGet('purchased.' + path, user) === true) return res.json(401, {err: 'User already purchased that'}); user.balance -= 2; helpers.dotSet('purchased.' + path, true, user); user.__v++; + user.markModified('purchased'); user.save(function(err, saved){ if (err) res.json(500, {err:err}); res.send(200); diff --git a/src/models/user.js b/src/models/user.js index c98da6f64f..d5f4725170 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -71,8 +71,8 @@ var UserSchema = new Schema({ purchased: { ads: {type: Boolean, 'default': false}, - skin: Schema.Types.Mixed, // eg, {skeleton: true, pumpkin: true, eb052b: true} - hair: Schema.Types.Mixed + skin: {type: Schema.Types.Mixed, 'default': {}}, // eg, {skeleton: true, pumpkin: true, eb052b: true} + hair: {type: Schema.Types.Mixed, 'default': {}} }, flags: {