Improve performance

This commit is contained in:
syuilo 2019-02-01 10:00:36 +09:00
parent c7ebf6f990
commit 5fe9f2baee
No known key found for this signature in database
GPG key ID: BDC4C49D06AB9D69

View file

@ -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)));
} }