first pass

v1.18.x
Julian Lam 11 years ago
parent cfe46f38ee
commit 483ad87c1d

@ -482,24 +482,49 @@ var bcrypt = require('bcrypt'),
}); });
} }
User.search = function(username, callback) { // User.search = function(username, callback) {
if (!username) { // if (!username) {
return callback([]); // return callback([]);
// }
// db.search('user', username, 50, function(err, uids) {
// if (err) {
// console.log(err);
// return;
// }
// if (uids && uids.length) {
// User.getDataForUsers(uids, function(userdata) {
// callback(userdata);
// });
// } else {
// callback([]);
// }
// });
// };
User.search = function(query, callback) {
if (!query || query.length === 0) {
return callback(null, []);
} }
db.search('user', username, 50, function(err, uids) { // TODO: Have this use db.getObjectKeys (doesn't exist yet)
db.getObject('username:uid', function(err, usernamesHash) {
if (err) { if (err) {
console.log(err); return callback(null, []);
return;
} }
if (uids && uids.length) { var usernames = Object.keys(usernamesHash),
User.getDataForUsers(uids, function(userdata) { filterRegex = new RegExp('^' + query + '.*?$'),
callback(userdata); results = [];
});
} else { results = usernames.filter(function(username) { // Remove non-matches
callback([]); return filterRegex.text(username);
} }).sort(function(a, b) { // Sort alphabetically
return a > b;
}).slice(0, 5); // Limit 5
callback(null, results);
}); });
}; };

Loading…
Cancel
Save