From d9f0e158a35eec183da77e84a3b038fab645bf62 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 19 Sep 2018 14:18:34 +0900 Subject: Implement #2736 --- src/models/note-unread.ts | 17 +++++++++++++++++ src/models/note.ts | 4 ++-- src/models/user.ts | 8 +++++++- 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 src/models/note-unread.ts (limited to 'src/models') diff --git a/src/models/note-unread.ts b/src/models/note-unread.ts new file mode 100644 index 0000000000..62408d23b6 --- /dev/null +++ b/src/models/note-unread.ts @@ -0,0 +1,17 @@ +import * as mongo from 'mongodb'; +import db from '../db/mongodb'; + +const NoteUnread = db.get('noteUnreads'); +NoteUnread.createIndex(['userId', 'noteId'], { unique: true }); +export default NoteUnread; + +export interface INoteUnread { + _id: mongo.ObjectID; + noteId: mongo.ObjectID; + userId: mongo.ObjectID; + isSpecified: boolean; + + _note: { + userId: mongo.ObjectID; + }; +} diff --git a/src/models/note.ts b/src/models/note.ts index ce307d061a..ba88e9f481 100644 --- a/src/models/note.ts +++ b/src/models/note.ts @@ -295,8 +295,8 @@ export const pack = async ( delete _note._user; delete _note._reply; - delete _note.repost; - delete _note.mentions; + delete _note._renote; + delete _note._files; if (_note.geo) delete _note.geo.type; // Populate user diff --git a/src/models/user.ts b/src/models/user.ts index b595fa8d71..bacae485a8 100644 --- a/src/models/user.ts +++ b/src/models/user.ts @@ -348,7 +348,8 @@ export const pack = ( me?: string | mongo.ObjectID | IUser, options?: { detail?: boolean, - includeSecrets?: boolean + includeSecrets?: boolean, + includeHasUnreadNotes?: boolean } ) => new Promise(async (resolve, reject) => { @@ -510,6 +511,11 @@ export const pack = ( } } + if (!opts.includeHasUnreadNotes) { + delete _user.hasUnreadSpecifiedNotes; + delete _user.hasUnreadMentions; + } + // resolve promises in _user object _user = await rap(_user); -- cgit v1.2.3-freya