This commit is contained in:
syuilo 2017-12-22 14:21:40 +09:00
parent 6e59c82252
commit e21ab77dd5
2 changed files with 22 additions and 1 deletions

View file

@ -3,6 +3,7 @@
*/ */
import $ from 'cafy'; import $ from 'cafy';
import History from '../../models/messaging-history'; import History from '../../models/messaging-history';
import Mute from '../../models/mute';
import serialize from '../../serializers/messaging-message'; import serialize from '../../serializers/messaging-message';
/** /**
@ -17,10 +18,18 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
const [limit = 10, limitErr] = $(params.limit).optional.number().range(1, 100).$; const [limit = 10, limitErr] = $(params.limit).optional.number().range(1, 100).$;
if (limitErr) return rej('invalid limit param'); if (limitErr) return rej('invalid limit param');
const mute = await Mute.find({
muter_id: user._id,
deleted_at: { $exists: false }
});
// Get history // Get history
const history = await History const history = await History
.find({ .find({
user_id: user._id user_id: user._id,
partner: {
$nin: mute.map(m => m.mutee_id)
}
}, { }, {
limit: limit, limit: limit,
sort: { sort: {

View file

@ -6,6 +6,7 @@ import Message from '../../../models/messaging-message';
import { isValidText } from '../../../models/messaging-message'; import { isValidText } from '../../../models/messaging-message';
import History from '../../../models/messaging-history'; import History from '../../../models/messaging-history';
import User from '../../../models/user'; import User from '../../../models/user';
import Mute from '../../../models/mute';
import DriveFile from '../../../models/drive-file'; import DriveFile from '../../../models/drive-file';
import serialize from '../../../serializers/messaging-message'; import serialize from '../../../serializers/messaging-message';
import publishUserStream from '../../../event'; import publishUserStream from '../../../event';
@ -97,6 +98,17 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
setTimeout(async () => { setTimeout(async () => {
const freshMessage = await Message.findOne({ _id: message._id }, { is_read: true }); const freshMessage = await Message.findOne({ _id: message._id }, { is_read: true });
if (!freshMessage.is_read) { if (!freshMessage.is_read) {
//#region ただしミュートしているユーザーからの通知なら無視
const mute = await Mute.find({
muter_id: recipient._id,
deleted_at: { $exists: false }
});
const mutedUserIds = mute.map(m => m.mutee_id.toString());
if (mutedUserIds.indexOf(user._id.toString()) != -1) {
return;
}
//#endregion
publishUserStream(message.recipient_id, 'unread_messaging_message', messageObj); publishUserStream(message.recipient_id, 'unread_messaging_message', messageObj);
pushSw(message.recipient_id, 'unread_messaging_message', messageObj); pushSw(message.recipient_id, 'unread_messaging_message', messageObj);
} }