summaryrefslogtreecommitdiff
path: root/src/server/api/common/get-hide-users.ts
blob: 3cdf80675140be822021f3253b8f50dc5d8c501b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import * as mongo from 'mongodb';
import Mute from '../../../models/mute';
import User, { IUser } from '../../../models/user';
import { unique } from '../../../prelude/array';

export async function getHideUserIds(me: IUser) {
	return await getHideUserIdsById(me ? me._id : null);
}

export async function getHideUserIdsById(meId?: mongo.ObjectID) {
	const [suspended, muted] = await Promise.all([
		User.find({
			isSuspended: true
		}, {
			fields: {
				_id: true
			}
		}),
		meId ? Mute.find({
			muterId: meId
		}) : Promise.resolve([])
	]);

	return unique(suspended.map(user => user._id).concat(muted.map(mute => mute.muteeId)));
}