* WIP user list - mostly complete

* Some code cleanup / renaming
This commit is contained in:
Bryan Ashby 2015-10-18 11:48:08 -06:00
parent b2509e9208
commit e36507fec1
9 changed files with 144 additions and 9 deletions

View file

@ -15,6 +15,7 @@ exports.User = User;
exports.getUserIdAndName = getUserIdAndName;
exports.getUserName = getUserName;
exports.loadProperties = loadProperties;
exports.getUserList = getUserList;
function User() {
var self = this;
@ -482,3 +483,40 @@ function loadProperties(options, cb) {
cb(null, properties);
});
}
function getUserList(options, cb) {
var userList = [];
var orderClause = 'ORDER BY ' + (options.order || 'user_name');
userDb.each(
'SELECT id, user_name ' +
'FROM user ' +
orderClause + ';',
function userRow(err, row) {
userList.push({
userId : row.id,
userName : row.user_name,
});
},
function usersComplete(err) {
options.properties = options.properties || [];
async.map(userList, function iter(user, callback) {
userDb.each(
'SELECT prop_name, prop_value ' +
'FROM user_property ' +
'WHERE user_id=? AND prop_name IN ("' + options.properties.join('","') + '");',
[ user.userId ],
function propRow(err, row) {
user[row.prop_name] = row.prop_value;
},
function complete(err) {
callback(err, user);
}
);
}, function propsComplete(err, transformed) {
cb(err, transformed);
});
}
);
}