From cb0d237b6a70ad118d3511930ef6cb1bca91cd76 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 5 Mar 2018 08:07:09 +0900 Subject: #1183 --- src/api/endpoints/i/update.ts | 8 +++++++- src/api/endpoints/posts/create.ts | 6 +++--- src/api/endpoints/posts/polls/vote.ts | 6 +++--- src/api/endpoints/posts/reactions/create.ts | 6 +++--- 4 files changed, 16 insertions(+), 10 deletions(-) (limited to 'src/api/endpoints') diff --git a/src/api/endpoints/i/update.ts b/src/api/endpoints/i/update.ts index 2a5dce64a8..76bad2d156 100644 --- a/src/api/endpoints/i/update.ts +++ b/src/api/endpoints/i/update.ts @@ -51,6 +51,11 @@ module.exports = async (params, user, _, isSecure) => new Promise(async (res, re if (isBotErr) return rej('invalid is_bot param'); if (isBot != null) user.is_bot = isBot; + // Get 'auto_watch' parameter + const [autoWatch, autoWatchErr] = $(params.auto_watch).optional.boolean().$; + if (autoWatchErr) return rej('invalid auto_watch param'); + if (autoWatch != null) user.settings.auto_watch = autoWatch; + await User.update(user._id, { $set: { name: user.name, @@ -58,7 +63,8 @@ module.exports = async (params, user, _, isSecure) => new Promise(async (res, re avatar_id: user.avatar_id, banner_id: user.banner_id, profile: user.profile, - is_bot: user.is_bot + is_bot: user.is_bot, + settings: user.settings } }); diff --git a/src/api/endpoints/posts/create.ts b/src/api/endpoints/posts/create.ts index 57f98fa811..a9d52fd128 100644 --- a/src/api/endpoints/posts/create.ts +++ b/src/api/endpoints/posts/create.ts @@ -377,9 +377,9 @@ module.exports = (params, user: IUser, app) => new Promise(async (res, rej) => { }); // この投稿をWatchする - // TODO: ユーザーが「返信したときに自動でWatchする」設定を - // オフにしていた場合はしない - watch(user._id, reply); + if (user.settings.auto_watch !== false) { + watch(user._id, reply); + } // Add mention addMention(reply.user_id, 'reply'); diff --git a/src/api/endpoints/posts/polls/vote.ts b/src/api/endpoints/posts/polls/vote.ts index 5a4fd1c268..8222fe5326 100644 --- a/src/api/endpoints/posts/polls/vote.ts +++ b/src/api/endpoints/posts/polls/vote.ts @@ -100,9 +100,9 @@ module.exports = (params, user) => new Promise(async (res, rej) => { }); // この投稿をWatchする - // TODO: ユーザーが「投票したときに自動でWatchする」設定を - // オフにしていた場合はしない - watch(user._id, post); + if (user.settings.auto_watch !== false) { + watch(user._id, post); + } }); function findWithAttr(array, attr, value) { diff --git a/src/api/endpoints/posts/reactions/create.ts b/src/api/endpoints/posts/reactions/create.ts index 0b0e0e294d..93d9756d02 100644 --- a/src/api/endpoints/posts/reactions/create.ts +++ b/src/api/endpoints/posts/reactions/create.ts @@ -116,7 +116,7 @@ module.exports = (params, user) => new Promise(async (res, rej) => { }); // この投稿をWatchする - // TODO: ユーザーが「リアクションしたときに自動でWatchする」設定を - // オフにしていた場合はしない - watch(user._id, post); + if (user.settings.auto_watch !== false) { + watch(user._id, post); + } }); -- cgit v1.2.3-freya