diff options
Diffstat (limited to 'src/server/api/endpoints/i/read-all-unread-notes.ts')
| -rw-r--r-- | src/server/api/endpoints/i/read-all-unread-notes.ts | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/server/api/endpoints/i/read-all-unread-notes.ts b/src/server/api/endpoints/i/read-all-unread-notes.ts new file mode 100644 index 0000000000..742c2d9908 --- /dev/null +++ b/src/server/api/endpoints/i/read-all-unread-notes.ts @@ -0,0 +1,40 @@ +import User from '../../../../models/user'; +import { publishMainStream } from '../../../../services/stream'; +import NoteUnread from '../../../../models/note-unread'; +import define from '../../define'; + +export const meta = { + desc: { + 'ja-JP': '未読の投稿をすべて既読にします。', + 'en-US': 'Mark all messages as read.' + }, + + tags: ['account'], + + requireCredential: true, + + kind: 'account-write', + + params: { + } +}; + +export default define(meta, async (ps, user) => { + // Remove documents + await NoteUnread.remove({ + userId: user._id + }); + + User.update({ _id: user._id }, { + $set: { + hasUnreadMentions: false, + hasUnreadSpecifiedNotes: false + } + }); + + // 全て既読になったイベントを発行 + publishMainStream(user._id, 'readAllUnreadMentions'); + publishMainStream(user._id, 'readAllUnreadSpecifiedNotes'); + + return; +}); |