add api endpoints to get user by username and by email

Signed-off-by: Dustin Falgout <dustin@falgout.us>
This commit is contained in:
Dustin Falgout
2015-12-06 09:16:20 -06:00
parent bc199d6872
commit 0e5830d6f2
2 changed files with 52 additions and 1 deletions

View File

@@ -195,6 +195,54 @@ apiController.getUserByUID = function(req, res, next) {
};
apiController.getUserByUsername = function (req, res, next) {
var username = req.params.username ? req.params.username : 0;
async.waterfall([
function (next) {
user.getUidByUsername(username, next);
},
async.parallel({
userData: async.apply(user.getUserData, uid),
settings: async.apply(user.getSettings, uid)
}, function (err, results) {
if (err || !results.userData) {
return next(err);
}
results.userData.email = results.settings.showemail ? results.userData.email : undefined;
results.userData.fullname = results.settings.showfullname ? results.userData.fullname : undefined;
res.json(results.userData);
})
], next);
};
apiController.getUserByEmail = function (req, res, next) {
var email = req.params.email ? req.params.email : 0;
async.waterfall([
function (next) {
user.getUidByEmail(email, next);
},
async.parallel({
userData: async.apply(user.getUserData, uid),
settings: async.apply(user.getSettings, uid)
}, function (err, results) {
if (err || !results.userData) {
return next(err);
}
results.userData.email = results.settings.showemail ? results.userData.email : undefined;
results.userData.fullname = results.settings.showfullname ? results.userData.fullname : undefined;
res.json(results.userData);
})
], next);
};
apiController.getModerators = function(req, res, next) {
categories.getModerators(req.params.cid, function(err, moderators) {
if (err) {