summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/notifications
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2018-03-29 14:51:06 +0900
committerGitHub <noreply@github.com>2018-03-29 14:51:06 +0900
commit0b5597c873d2d9d45be94a18e1b74f44d9925185 (patch)
tree8b4dac3a56cf703650c8207f9279028a8560a96b /src/server/api/endpoints/notifications
parentoops (diff)
parentResolve conflicts (diff)
downloadmisskey-0b5597c873d2d9d45be94a18e1b74f44d9925185.tar.gz
misskey-0b5597c873d2d9d45be94a18e1b74f44d9925185.tar.bz2
misskey-0b5597c873d2d9d45be94a18e1b74f44d9925185.zip
Merge pull request #1332 from syuilo/pr/1327
Pr/1327
Diffstat (limited to 'src/server/api/endpoints/notifications')
-rw-r--r--src/server/api/endpoints/notifications/get_unread_count.ts33
-rw-r--r--src/server/api/endpoints/notifications/mark_as_read_all.ts32
2 files changed, 65 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..8f9719fff6
--- /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({
+ muterId: user._id,
+ deletedAt: { $exists: false }
+ });
+ const mutedUserIds = mute.map(m => m.muteeId);
+
+ const count = await Notification
+ .count({
+ notifieeId: user._id,
+ notifierId: {
+ $nin: mutedUserIds
+ },
+ isRead: false
+ });
+
+ res({
+ count: count
+ });
+});
diff --git a/src/server/api/endpoints/notifications/mark_as_read_all.ts b/src/server/api/endpoints/notifications/mark_as_read_all.ts
new file mode 100644
index 0000000000..693de3d0ef
--- /dev/null
+++ b/src/server/api/endpoints/notifications/mark_as_read_all.ts
@@ -0,0 +1,32 @@
+/**
+ * Module dependencies
+ */
+import Notification from '../../models/notification';
+import event from '../../event';
+
+/**
+ * Mark as read all notifications
+ *
+ * @param {any} params
+ * @param {any} user
+ * @return {Promise<any>}
+ */
+module.exports = (params, user) => new Promise(async (res, rej) => {
+ // Update documents
+ await Notification.update({
+ notifieeId: user._id,
+ isRead: false
+ }, {
+ $set: {
+ isRead: true
+ }
+ }, {
+ multi: true
+ });
+
+ // Response
+ res();
+
+ // 全ての通知を読みましたよというイベントを発行
+ event(user._id, 'read_all_notifications');
+});