mirror of
https://example.com
synced 2024-11-25 00:46:40 +09:00
wip
This commit is contained in:
parent
6575a6de5b
commit
8b515b4dae
2 changed files with 22 additions and 0 deletions
|
@ -1,5 +1,6 @@
|
|||
import * as mongo from 'mongodb';
|
||||
import Notification from '../models/notification';
|
||||
import Mute from '../models/mute';
|
||||
import event from '../event';
|
||||
import serialize from '../serializers/notification';
|
||||
|
||||
|
@ -32,6 +33,17 @@ export default (
|
|||
setTimeout(async () => {
|
||||
const fresh = await Notification.findOne({ _id: notification._id }, { is_read: true });
|
||||
if (!fresh.is_read) {
|
||||
//#region ただしミュートしているユーザーからの通知なら無視
|
||||
const mute = await Mute.find({
|
||||
muter_id: notifiee,
|
||||
deleted_at: { $exists: false }
|
||||
});
|
||||
const mutedUserIds = mute.map(m => m.mutee_id.toString());
|
||||
if (mutedUserIds.indexOf(notifier.toHexString()) != -1) {
|
||||
return;
|
||||
}
|
||||
//#endregion
|
||||
|
||||
event(notifiee, 'unread_notification', await serialize(notification));
|
||||
}
|
||||
}, 3000);
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
* Module dependencies
|
||||
*/
|
||||
import Notification from '../../models/notification';
|
||||
import Mute from '../../models/mute';
|
||||
|
||||
/**
|
||||
* Get count of unread notifications
|
||||
|
@ -11,9 +12,18 @@ import Notification from '../../models/notification';
|
|||
* @return {Promise<any>}
|
||||
*/
|
||||
module.exports = (params, user) => new Promise(async (res, rej) => {
|
||||
const mute = await Mute.find({
|
||||
muter_id: user._id,
|
||||
deleted_at: { $exists: false }
|
||||
});
|
||||
const mutedUserIds = mute.map(m => m.mutee_id);
|
||||
|
||||
const count = await Notification
|
||||
.count({
|
||||
notifiee_id: user._id,
|
||||
notifier_id: {
|
||||
$nin: mutedUserIds
|
||||
},
|
||||
is_read: false
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in a new issue