Skip to content
Snippets Groups Projects
get_unread_count.ts 527 B
Newer Older
syuilo's avatar
syuilo committed
import Notification from '../../../../models/notification';
import Mute from '../../../../models/mute';

/**
 * Get count of unread notifications
 */
module.exports = (params, user) => new Promise(async (res, rej) => {
syuilo's avatar
syuilo committed
	const mute = await Mute.find({
		muterId: user._id
syuilo's avatar
syuilo committed
	});
syuilo's avatar
syuilo committed
	const mutedUserIds = mute.map(m => m.muteeId);
syuilo's avatar
syuilo committed

	const count = await Notification
		.count({
syuilo's avatar
syuilo committed
			notifieeId: user._id,
			notifierId: {
syuilo's avatar
syuilo committed
				$nin: mutedUserIds
			},
syuilo's avatar
syuilo committed
			isRead: false