mirror of
https://github.com/sim1222/misskey.git
synced 2025-08-07 09:13:52 +09:00
43
packages/backend/src/server/api/common/read-notification.ts
Normal file
43
packages/backend/src/server/api/common/read-notification.ts
Normal file
@ -0,0 +1,43 @@
|
||||
import { publishMainStream } from '@/services/stream';
|
||||
import { User } from '@/models/entities/user';
|
||||
import { Notification } from '@/models/entities/notification';
|
||||
import { Notifications, Users } from '@/models/index';
|
||||
import { In } from 'typeorm';
|
||||
|
||||
export async function readNotification(
|
||||
userId: User['id'],
|
||||
notificationIds: Notification['id'][]
|
||||
) {
|
||||
// Update documents
|
||||
await Notifications.update({
|
||||
id: In(notificationIds),
|
||||
isRead: false
|
||||
}, {
|
||||
isRead: true
|
||||
});
|
||||
|
||||
post(userId);
|
||||
}
|
||||
|
||||
export async function readNotificationByQuery(
|
||||
userId: User['id'],
|
||||
query: Record<string, any>
|
||||
) {
|
||||
// Update documents
|
||||
await Notifications.update({
|
||||
...query,
|
||||
notifieeId: userId,
|
||||
isRead: false
|
||||
}, {
|
||||
isRead: true
|
||||
});
|
||||
|
||||
post(userId);
|
||||
}
|
||||
|
||||
async function post(userId: User['id']) {
|
||||
if (!await Users.getHasUnreadNotification(userId)) {
|
||||
// 全ての(いままで未読だった)通知を(これで)読みましたよというイベントを発行
|
||||
publishMainStream(userId, 'readAllNotifications');
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user