mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-27 09:06:15 +01:00
feat: new hooks for notifications get/getCount
This commit is contained in:
@@ -24,10 +24,12 @@ UserNotifications.get = async function (uid) {
|
||||
if (unread.length < 30) {
|
||||
read = await getNotificationsFromSet(`uid:${uid}:notifications:read`, uid, 0, 29 - unread.length);
|
||||
}
|
||||
return {
|
||||
|
||||
return await plugins.hooks.fire('filter:user.notifications.get', {
|
||||
uid,
|
||||
read: read.filter(Boolean),
|
||||
unread: unread,
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
async function filterNotifications(nids, filter) {
|
||||
@@ -133,7 +135,7 @@ UserNotifications.getUnreadCount = async function (uid) {
|
||||
const mergeIds = notifData.map(n => n.mergeId);
|
||||
|
||||
// Collapse any notifications with identical mergeIds
|
||||
return mergeIds.reduce((count, mergeId, idx, arr) => {
|
||||
let count = mergeIds.reduce((count, mergeId, idx, arr) => {
|
||||
// A missing (null) mergeId means that notification is counted separately.
|
||||
if (mergeId === null || idx === arr.indexOf(mergeId)) {
|
||||
count += 1;
|
||||
@@ -141,6 +143,9 @@ UserNotifications.getUnreadCount = async function (uid) {
|
||||
|
||||
return count;
|
||||
}, 0);
|
||||
|
||||
({ count } = await plugins.hooks.fire('filter:user.notifications.getCount', { uid, count }));
|
||||
return count;
|
||||
};
|
||||
|
||||
UserNotifications.getUnreadByField = async function (uid, field, values) {
|
||||
|
||||
Reference in New Issue
Block a user