summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-07-09 01:07:55 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-07-09 01:07:55 +0900
commit49febe1764909428dc9c5217b25591dd4d98cf87 (patch)
tree297d56990d6a245e05c9ac426c7daf753248659e /src
parentrefactoring (diff)
downloadsharkey-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.ts23
-rw-r--r--src/services/note/read.ts5
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) {