This commit is contained in:
@ -4,6 +4,7 @@ import { IMessagingMessage as IMessage } from '../../../models/messaging-message
|
||||
import publishUserStream from '../../../publishers/stream';
|
||||
import { publishMessagingStream } from '../../../publishers/stream';
|
||||
import { publishMessagingIndexStream } from '../../../publishers/stream';
|
||||
import User from '../../../models/user';
|
||||
|
||||
/**
|
||||
* Mark as read message(s)
|
||||
@ -62,6 +63,13 @@ export default (
|
||||
});
|
||||
|
||||
if (count == 0) {
|
||||
// Update flag
|
||||
User.update({ _id: userId }, {
|
||||
$set: {
|
||||
hasUnreadMessagingMessage: false
|
||||
}
|
||||
});
|
||||
|
||||
// 全ての(いままで未読だった)自分宛てのメッセージを(これで)読みましたよというイベントを発行
|
||||
publishUserStream(userId, 'read_all_messaging_messages');
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ import * as mongo from 'mongodb';
|
||||
import { default as Notification, INotification } from '../../../models/notification';
|
||||
import publishUserStream from '../../../publishers/stream';
|
||||
import Mute from '../../../models/mute';
|
||||
import User from '../../../models/user';
|
||||
|
||||
/**
|
||||
* Mark as read notification(s)
|
||||
@ -57,6 +58,13 @@ export default (
|
||||
});
|
||||
|
||||
if (count == 0) {
|
||||
// Update flag
|
||||
User.update({ _id: userId }, {
|
||||
$set: {
|
||||
hasUnreadNotification: false
|
||||
}
|
||||
});
|
||||
|
||||
// 全ての(いままで未読だった)通知を(これで)読みましたよというイベントを発行
|
||||
publishUserStream(userId, 'read_all_notifications');
|
||||
}
|
||||
|
@ -279,11 +279,6 @@ const endpoints: Endpoint[] = [
|
||||
kind: 'account/read'
|
||||
},
|
||||
|
||||
{
|
||||
name: 'notifications/get_unread_count',
|
||||
withCredential: true,
|
||||
kind: 'notification-read'
|
||||
},
|
||||
{
|
||||
name: 'notifications/delete',
|
||||
withCredential: true,
|
||||
@ -610,11 +605,6 @@ const endpoints: Endpoint[] = [
|
||||
withCredential: true,
|
||||
kind: 'messaging-read'
|
||||
},
|
||||
{
|
||||
name: 'messaging/unread',
|
||||
withCredential: true,
|
||||
kind: 'messaging-read'
|
||||
},
|
||||
{
|
||||
name: 'messaging/messages',
|
||||
withCredential: true,
|
||||
|
@ -1,6 +1,3 @@
|
||||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
import $ from 'cafy'; import ID from '../../../../cafy-id';
|
||||
import Message from '../../../../models/messaging-message';
|
||||
import User from '../../../../models/user';
|
||||
@ -9,10 +6,6 @@ import read from '../../common/read-messaging-message';
|
||||
|
||||
/**
|
||||
* Get messages
|
||||
*
|
||||
* @param {any} params
|
||||
* @param {any} user
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
module.exports = (params, user) => new Promise(async (res, rej) => {
|
||||
// Get 'userId' parameter
|
||||
|
@ -91,6 +91,13 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
|
||||
publishMessagingIndexStream(message.recipientId, 'message', messageObj);
|
||||
publishUserStream(message.recipientId, 'messaging_message', messageObj);
|
||||
|
||||
// Update flag
|
||||
User.update({ _id: recipient._id }, {
|
||||
$set: {
|
||||
hasUnreadMessagingMessage: true
|
||||
}
|
||||
});
|
||||
|
||||
// 3秒経っても(今回作成した)メッセージが既読にならなかったら「未読のメッセージがありますよ」イベントを発行する
|
||||
setTimeout(async () => {
|
||||
const freshMessage = await Message.findOne({ _id: message._id }, { isRead: true });
|
||||
|
@ -1,29 +0,0 @@
|
||||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
import Message from '../../../../models/messaging-message';
|
||||
import Mute from '../../../../models/mute';
|
||||
|
||||
/**
|
||||
* Get count of unread messages
|
||||
*/
|
||||
module.exports = (params, user) => new Promise(async (res, rej) => {
|
||||
const mute = await Mute.find({
|
||||
muterId: user._id,
|
||||
deletedAt: { $exists: false }
|
||||
});
|
||||
const mutedUserIds = mute.map(m => m.muteeId);
|
||||
|
||||
const count = await Message
|
||||
.count({
|
||||
userId: {
|
||||
$nin: mutedUserIds
|
||||
},
|
||||
recipientId: user._id,
|
||||
isRead: false
|
||||
});
|
||||
|
||||
res({
|
||||
count: count
|
||||
});
|
||||
});
|
@ -1,28 +0,0 @@
|
||||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
import Notification from '../../../../models/notification';
|
||||
import Mute from '../../../../models/mute';
|
||||
|
||||
/**
|
||||
* Get count of unread notifications
|
||||
*/
|
||||
module.exports = (params, user) => new Promise(async (res, rej) => {
|
||||
const mute = await Mute.find({
|
||||
muterId: user._id
|
||||
});
|
||||
const mutedUserIds = mute.map(m => m.muteeId);
|
||||
|
||||
const count = await Notification
|
||||
.count({
|
||||
notifieeId: user._id,
|
||||
notifierId: {
|
||||
$nin: mutedUserIds
|
||||
},
|
||||
isRead: false
|
||||
});
|
||||
|
||||
res({
|
||||
count: count
|
||||
});
|
||||
});
|
@ -1,8 +1,6 @@
|
||||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
import Notification from '../../../../models/notification';
|
||||
import event from '../../../../publishers/stream';
|
||||
import User from '../../../../models/user';
|
||||
|
||||
/**
|
||||
* Mark as read all notifications
|
||||
@ -23,6 +21,13 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
|
||||
// Response
|
||||
res();
|
||||
|
||||
// Update flag
|
||||
User.update({ _id: user._id }, {
|
||||
$set: {
|
||||
hasUnreadNotification: false
|
||||
}
|
||||
});
|
||||
|
||||
// 全ての通知を読みましたよというイベントを発行
|
||||
event(user._id, 'read_all_notifications');
|
||||
});
|
||||
|
Reference in New Issue
Block a user