[#1477] add reset account

This commit is contained in:
Tyler Renelle
2013-09-08 15:11:04 -04:00
parent 5e51148f8e
commit f250a98fb7
5 changed files with 38 additions and 136 deletions
+25 -73
View File
@@ -533,6 +533,31 @@ api.reroll = function(req, res, next) {
});
};
api.reset = function(req, res){
var user = res.locals.user;
user.tasks = {};
_.each(['habit', 'daily', 'todo', 'reward'], function(type) {
user[type + "Ids"] = [];
});
user.stats.hp = 50;
user.stats.lvl = 1;
user.stats.gp = 0;
user.stats.exp = 0;
user.items.armor = 0;
user.items.weapon = 0;
user.items.head = 0;
user.items.shield = 0;
user.save(function(err, saved){
if (err) return res.json(500,{err:err});
res.json(saved);
})
}
/*
Setup Stripe response when posting payment
@@ -562,79 +587,6 @@ api.buyGems = function(req, res) {
});
};
/*
------------------------------------------------------------------------
Party
------------------------------------------------------------------------
*/
api.getGroups = function(req, res, next) {
var user = res.locals.user;
/*TODO should we support non-authenticated users? just for viewing public groups?*/
return async.parallel({
party: function(cb) {
return async.waterfall([
function(cb2) {
return Group.findOne({
type: 'party',
members: {
'$in': [user._id]
}
}, cb2);
}, function(party, cb2) {
var fields, query;
party = party.toJSON();
query = {
_id: {
'$in': party.members,
'$nin': [user._id]
}
};
fields = 'profile preferences items stats achievements party backer auth.local.username auth.facebook.first_name auth.facebook.last_name auth.facebook.name auth.facebook.username'.split(' ');
fields = _.reduce(fields, (function(m, k, v) {
m[k] = 1;
return m;
}), {});
return User.find(query, fields, function(err, members) {
party.members = members;
return cb2(err, party);
});
}
], function(err, members) {
return cb(err, members);
});
},
guilds: function(cb) {
return cb(null, {});
return Group.findOne({
type: 'guild',
members: {
'$in': [user._id]
}
}, cb);
},
"public": function(cb) {
return cb(null, {});
return Group.find({
privacy: 'public'
}, {
name: 1,
description: 1,
members: 1
}, cb);
}
}, function(err, results) {
if (err) {
return res.json(500, {
err: err
});
}
return res.json(results);
});
};
/*
------------------------------------------------------------------------
Batch Update