summaryrefslogtreecommitdiff
path: root/src/services/note/unread.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/services/note/unread.ts')
-rw-r--r--src/services/note/unread.ts45
1 files changed, 16 insertions, 29 deletions
diff --git a/src/services/note/unread.ts b/src/services/note/unread.ts
index e70c63c765..203cff8d39 100644
--- a/src/services/note/unread.ts
+++ b/src/services/note/unread.ts
@@ -1,47 +1,34 @@
-import NoteUnread from '../../models/note-unread';
-import User, { IUser } from '../../models/user';
-import { INote } from '../../models/note';
-import Mute from '../../models/mute';
+import { Note } from '../../models/entities/note';
import { publishMainStream } from '../stream';
+import { User } from '../../models/entities/user';
+import { Mutings, NoteUnreads } from '../../models';
+import { genId } from '../../misc/gen-id';
-export default async function(user: IUser, note: INote, isSpecified = false) {
+export default async function(user: User, note: Note, isSpecified = false) {
//#region ミュートしているなら無視
- const mute = await Mute.find({
- muterId: user._id
+ const mute = await Mutings.find({
+ muterId: user.id
});
- const mutedUserIds = mute.map(m => m.muteeId.toString());
- if (mutedUserIds.includes(note.userId.toString())) return;
+ if (mute.map(m => m.muteeId).includes(note.userId)) return;
//#endregion
- const unread = await NoteUnread.insert({
- noteId: note._id,
- userId: user._id,
+ const unread = await NoteUnreads.save({
+ id: genId(),
+ noteId: note.id,
+ userId: user.id,
isSpecified,
- _note: {
- userId: note.userId
- }
+ noteUserId: note.userId
});
// 2秒経っても既読にならなかったら「未読の投稿がありますよ」イベントを発行する
setTimeout(async () => {
- const exist = await NoteUnread.findOne({ _id: unread._id });
+ const exist = await NoteUnreads.findOne(unread.id);
if (exist == null) return;
- User.update({
- _id: user._id
- }, {
- $set: isSpecified ? {
- hasUnreadSpecifiedNotes: true,
- hasUnreadMentions: true
- } : {
- hasUnreadMentions: true
- }
- });
-
- publishMainStream(user._id, 'unreadMention', note._id);
+ publishMainStream(user.id, 'unreadMention', note.id);
if (isSpecified) {
- publishMainStream(user._id, 'unreadSpecifiedNote', note._id);
+ publishMainStream(user.id, 'unreadSpecifiedNote', note.id);
}
}, 2000);
}