forked from FoundKeyGang/FoundKey
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 * as mongo from 'mongodb';
|
||||||
import Notification from '../models/notification';
|
import Notification from '../models/notification';
|
||||||
|
import Mute from '../models/mute';
|
||||||
import event from '../event';
|
import event from '../event';
|
||||||
import serialize from '../serializers/notification';
|
import serialize from '../serializers/notification';
|
||||||
|
|
||||||
|
@ -32,6 +33,17 @@ export default (
|
||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
const fresh = await Notification.findOne({ _id: notification._id }, { is_read: true });
|
const fresh = await Notification.findOne({ _id: notification._id }, { is_read: true });
|
||||||
if (!fresh.is_read) {
|
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));
|
event(notifiee, 'unread_notification', await serialize(notification));
|
||||||
}
|
}
|
||||||
}, 3000);
|
}, 3000);
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
* Module dependencies
|
* Module dependencies
|
||||||
*/
|
*/
|
||||||
import Notification from '../../models/notification';
|
import Notification from '../../models/notification';
|
||||||
|
import Mute from '../../models/mute';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get count of unread notifications
|
* Get count of unread notifications
|
||||||
|
@ -11,9 +12,18 @@ import Notification from '../../models/notification';
|
||||||
* @return {Promise<any>}
|
* @return {Promise<any>}
|
||||||
*/
|
*/
|
||||||
module.exports = (params, user) => new Promise(async (res, rej) => {
|
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
|
const count = await Notification
|
||||||
.count({
|
.count({
|
||||||
notifiee_id: user._id,
|
notifiee_id: user._id,
|
||||||
|
notifier_id: {
|
||||||
|
$nin: mutedUserIds
|
||||||
|
},
|
||||||
is_read: false
|
is_read: false
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue