diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2021-07-09 01:07:55 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2021-07-09 01:07:55 +0900 |
| commit | 49febe1764909428dc9c5217b25591dd4d98cf87 (patch) | |
| tree | 297d56990d6a245e05c9ac426c7daf753248659e /src | |
| parent | refactoring (diff) | |
| download | sharkey-49febe1764909428dc9c5217b25591dd4d98cf87.tar.gz sharkey-49febe1764909428dc9c5217b25591dd4d98cf87.tar.bz2 sharkey-49febe1764909428dc9c5217b25591dd4d98cf87.zip | |
Resolve #7165
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/api/common/read-notification.ts | 23 | ||||
| -rw-r--r-- | src/services/note/read.ts | 5 |
2 files changed, 25 insertions, 3 deletions
diff --git a/src/server/api/common/read-notification.ts b/src/server/api/common/read-notification.ts index f686446c5c..effa61e8b5 100644 --- a/src/server/api/common/read-notification.ts +++ b/src/server/api/common/read-notification.ts @@ -4,9 +4,6 @@ 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'][] @@ -19,6 +16,26 @@ export async function readNotification( 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'); diff --git a/src/services/note/read.ts b/src/services/note/read.ts index 2bdb859476..a661c0a9d0 100644 --- a/src/services/note/read.ts +++ b/src/services/note/read.ts @@ -7,6 +7,7 @@ import { Channel } from '../../models/entities/channel'; import { checkHitAntenna } from '@/misc/check-hit-antenna'; import { getAntennas } from '@/misc/antenna-cache'; import { PackedNote } from '../../models/repositories/note'; +import { readNotificationByQuery } from '@/server/api/common/read-notification'; /** * Mark notes as read @@ -96,6 +97,10 @@ export default async function( publishMainStream(userId, 'readAllChannels'); } }); + + readNotificationByQuery(userId, { + noteId: In([...readMentions.map(n => n.id), ...readSpecifiedNotes.map(n => n.id)]), + }); } if (readAntennaNotes.length > 0) { |