Resolve #7165
This commit is contained in:
parent
65addc8206
commit
49febe1764
2 changed files with 25 additions and 3 deletions
|
@ -4,9 +4,6 @@ import { Notification } from '../../../models/entities/notification';
|
||||||
import { Notifications, Users } from '../../../models';
|
import { Notifications, Users } from '../../../models';
|
||||||
import { In } from 'typeorm';
|
import { In } from 'typeorm';
|
||||||
|
|
||||||
/**
|
|
||||||
* Mark notifications as read
|
|
||||||
*/
|
|
||||||
export async function readNotification(
|
export async function readNotification(
|
||||||
userId: User['id'],
|
userId: User['id'],
|
||||||
notificationIds: Notification['id'][]
|
notificationIds: Notification['id'][]
|
||||||
|
@ -19,6 +16,26 @@ export async function readNotification(
|
||||||
isRead: true
|
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)) {
|
if (!await Users.getHasUnreadNotification(userId)) {
|
||||||
// 全ての(いままで未読だった)通知を(これで)読みましたよというイベントを発行
|
// 全ての(いままで未読だった)通知を(これで)読みましたよというイベントを発行
|
||||||
publishMainStream(userId, 'readAllNotifications');
|
publishMainStream(userId, 'readAllNotifications');
|
||||||
|
|
|
@ -7,6 +7,7 @@ import { Channel } from '../../models/entities/channel';
|
||||||
import { checkHitAntenna } from '@/misc/check-hit-antenna';
|
import { checkHitAntenna } from '@/misc/check-hit-antenna';
|
||||||
import { getAntennas } from '@/misc/antenna-cache';
|
import { getAntennas } from '@/misc/antenna-cache';
|
||||||
import { PackedNote } from '../../models/repositories/note';
|
import { PackedNote } from '../../models/repositories/note';
|
||||||
|
import { readNotificationByQuery } from '@/server/api/common/read-notification';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mark notes as read
|
* Mark notes as read
|
||||||
|
@ -96,6 +97,10 @@ export default async function(
|
||||||
publishMainStream(userId, 'readAllChannels');
|
publishMainStream(userId, 'readAllChannels');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
readNotificationByQuery(userId, {
|
||||||
|
noteId: In([...readMentions.map(n => n.id), ...readSpecifiedNotes.map(n => n.id)]),
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (readAntennaNotes.length > 0) {
|
if (readAntennaNotes.length > 0) {
|
||||||
|
|
Loading…
Reference in a new issue