summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/notifications/get_unread_count.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/endpoints/notifications/get_unread_count.ts')
-rw-r--r--src/server/api/endpoints/notifications/get_unread_count.ts33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/server/api/endpoints/notifications/get_unread_count.ts b/src/server/api/endpoints/notifications/get_unread_count.ts
new file mode 100644
index 0000000000..845d6b29ce
--- /dev/null
+++ b/src/server/api/endpoints/notifications/get_unread_count.ts
@@ -0,0 +1,33 @@
+/**
+ * Module dependencies
+ */
+import Notification from '../../models/notification';
+import Mute from '../../models/mute';
+
+/**
+ * Get count of unread notifications
+ *
+ * @param {any} params
+ * @param {any} user
+ * @return {Promise<any>}
+ */
+module.exports = (params, user) => new Promise(async (res, rej) => {
+ const mute = await Mute.find({
+ muter_id: user._id,
+ deleted_at: { $exists: false }
+ });
+ const mutedUserIds = mute.map(m => m.mutee_id);
+
+ const count = await Notification
+ .count({
+ notifiee_id: user._id,
+ notifier_id: {
+ $nin: mutedUserIds
+ },
+ is_read: false
+ });
+
+ res({
+ count: count
+ });
+});