diff options
Diffstat (limited to 'src/server/api/endpoints/notes/polls')
| -rw-r--r-- | src/server/api/endpoints/notes/polls/recommendation.ts | 1 | ||||
| -rw-r--r-- | src/server/api/endpoints/notes/polls/vote.ts | 21 |
2 files changed, 20 insertions, 2 deletions
diff --git a/src/server/api/endpoints/notes/polls/recommendation.ts b/src/server/api/endpoints/notes/polls/recommendation.ts index cfcba788ec..2bc1a4f913 100644 --- a/src/server/api/endpoints/notes/polls/recommendation.ts +++ b/src/server/api/endpoints/notes/polls/recommendation.ts @@ -39,6 +39,7 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => { const notes = await Note .find({ + '_user.host': null, _id: { $nin: nin }, diff --git a/src/server/api/endpoints/notes/polls/vote.ts b/src/server/api/endpoints/notes/polls/vote.ts index dc012152c6..f99fb099c7 100644 --- a/src/server/api/endpoints/notes/polls/vote.ts +++ b/src/server/api/endpoints/notes/polls/vote.ts @@ -6,6 +6,8 @@ import watch from '../../../../../services/note/watch'; import { publishNoteStream } from '../../../../../stream'; import notify from '../../../../../notify'; import define from '../../../define'; +import createNote from '../../../../../services/note/create'; +import User from '../../../../../models/user'; export const meta = { desc: { @@ -102,16 +104,31 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => { } }) .then(watchers => { - watchers.forEach(watcher => { + for (const watcher of watchers) { notify(watcher.userId, user._id, 'poll_vote', { noteId: note._id, choice: ps.choice }); - }); + } }); // この投稿をWatchする if (user.settings.autoWatch !== false) { watch(user._id, note); } + + // リモート投票の場合リプライ送信 + if (note._user.host != null) { + const pollOwner = await User.findOne({ + _id: note.userId + }); + + createNote(user, { + createdAt: new Date(), + text: ps.choice.toString(), + reply: note, + visibility: 'specified', + visibleUsers: [ pollOwner ], + }); + } })); |