forked from FoundKeyGang/FoundKey
Improve user search
This commit is contained in:
parent
44cd1e9223
commit
d692bb3c52
2 changed files with 16 additions and 3 deletions
|
@ -40,6 +40,7 @@ async function byNative(res, rej, me, query, offset, max) {
|
||||||
// Search users
|
// Search users
|
||||||
const users = await User
|
const users = await User
|
||||||
.find({
|
.find({
|
||||||
|
host: null,
|
||||||
$or: [{
|
$or: [{
|
||||||
usernameLower: new RegExp(escapedQuery.replace('@', '').toLowerCase())
|
usernameLower: new RegExp(escapedQuery.replace('@', '').toLowerCase())
|
||||||
}, {
|
}, {
|
||||||
|
|
|
@ -20,15 +20,27 @@ module.exports = (params, me) => new Promise(async (res, rej) => {
|
||||||
const [limit = 10, limitErr] = $.num.optional().range(1, 100).get(params.limit);
|
const [limit = 10, limitErr] = $.num.optional().range(1, 100).get(params.limit);
|
||||||
if (limitErr) return rej('invalid limit param');
|
if (limitErr) return rej('invalid limit param');
|
||||||
|
|
||||||
const users = await User
|
let users = await User
|
||||||
.find({
|
.find({
|
||||||
|
host: null,
|
||||||
usernameLower: new RegExp(query.toLowerCase())
|
usernameLower: new RegExp(query.toLowerCase())
|
||||||
}, {
|
}, {
|
||||||
limit: limit,
|
limit: limit,
|
||||||
skip: offset
|
skip: offset
|
||||||
});
|
});
|
||||||
|
|
||||||
// Serialize
|
if (users.length < limit) {
|
||||||
res(await Promise.all(users.map(async user =>
|
const remoteUsers = await User
|
||||||
await pack(user, me, { detail: true }))));
|
.find({
|
||||||
|
host: { $ne: null },
|
||||||
|
usernameLower: new RegExp(query.toLowerCase())
|
||||||
|
}, {
|
||||||
|
limit: limit - users.length
|
||||||
|
});
|
||||||
|
|
||||||
|
users = users.concat(remoteUsers);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Serialize
|
||||||
|
res(await Promise.all(users.map(user => pack(user, me, { detail: true }))));
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue