Improve performance
This commit is contained in:
parent
c7ebf6f990
commit
5fe9f2baee
|
@ -7,14 +7,19 @@ export async function getHideUserIds(me: IUser) {
|
||||||
return me ? await getHideUserIdsById(me._id) : [];
|
return me ? await getHideUserIdsById(me._id) : [];
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getHideUserIdsById(meId: mongo.ObjectID) {
|
export async function getHideUserIdsById(meId?: mongo.ObjectID) {
|
||||||
const suspended = (await User.find({
|
const [suspended, muted] = await Promise.all([
|
||||||
|
User.find({
|
||||||
isSuspended: true
|
isSuspended: true
|
||||||
})).map(user => user._id);
|
}, {
|
||||||
|
fields: {
|
||||||
const muted = meId ? (await Mute.find({
|
_id: true
|
||||||
muterId: meId
|
}
|
||||||
})).map(mute => mute.muteeId) : [];
|
}),
|
||||||
|
meId ? Mute.find({
|
||||||
return unique(suspended.concat(muted));
|
muterId: meId
|
||||||
|
}) : Promise.resolve([])
|
||||||
|
]);
|
||||||
|
|
||||||
|
return unique(suspended.map(user => user._id).concat(muted.map(mute => mute.muteeId)));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue