wip
This commit is contained in:
parent
6e59c82252
commit
e21ab77dd5
|
@ -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: {
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue