jormungandr-bite/src/server/api/common/read-notification.ts
syuilo e24ca1e51f v12 (#5712)
Co-authored-by: MeiMei <30769358+mei23@users.noreply.github.com>
Co-authored-by: Satsuki Yanagi <17376330+u1-liquid@users.noreply.github.com>
2020-01-30 04:37:25 +09:00

26 lines
760 B
TypeScript

import { publishMainStream } from '../../../services/stream';
import { User } from '../../../models/entities/user';
import { Notification } from '../../../models/entities/notification';
import { Notifications, Users } from '../../../models';
import { In } from 'typeorm';
/**
* Mark notifications as read
*/
export async function readNotification(
userId: User['id'],
notificationIds: Notification['id'][]
) {
// Update documents
await Notifications.update({
id: In(notificationIds),
isRead: false
}, {
isRead: true
});
if (!await Users.getHasUnreadNotification(userId)) {
// 全ての(いままで未読だった)通知を(これで)読みましたよというイベントを発行
publishMainStream(userId, 'readAllNotifications');
}
}