fix read-notification.ts

This commit is contained in:
tamaina 2021-09-04 21:20:47 +09:00
parent 42d82ab379
commit 0ae98b4a07

View file

@ -17,7 +17,8 @@ export async function readNotification(
isRead: true
});
post(userId);
if (!await Users.getHasUnreadNotification(userId)) return postReadAllNotifications(userId);
else return postReadNotifications(userId, notificationIds)
}
export async function readNotificationByQuery(
@ -33,18 +34,15 @@ export async function readNotificationByQuery(
isRead: true
});
post(userId);
if (!await Users.getHasUnreadNotification(userId)) return postReadAllNotifications(userId);
}
async function post(userId: User['id']) {
if (!await Users.getHasUnreadNotification(userId)) {
// ユーザーのすべての通知が既読だったら、
// 全ての(いままで未読だった)通知を(これで)読みましたよというイベントを発行
function postReadAllNotifications(userId: User['id']) {
publishMainStream(userId, 'readAllNotifications');
pushNotification(userId, 'readAllNotifications', undefined);
} else {
// まだすべて既読になっていなければ、各クライアントにnotificationIdsを伝達
publishMainStream(userId, 'readNotifications', notificationIds);
pushNotification(userId, 'readNotifications', { notificationIds });
}
return pushNotification(userId, 'readAllNotifications', undefined);
}
function postReadNotifications(userId: User['id'], notificationIds: Notification['id'][]) {
publishMainStream(userId, 'readNotifications', notificationIds);
return pushNotification(userId, 'readNotifications', { notificationIds });
}