summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/notes/polls
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/endpoints/notes/polls')
-rw-r--r--src/server/api/endpoints/notes/polls/recommendation.ts1
-rw-r--r--src/server/api/endpoints/notes/polls/vote.ts21
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 ],
+ });
+ }
}));