-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Q&Aでベストアンサーが決まったらウォッチしているユーザに通知する #3082
Conversation
既存の解決済みの質問と回答データとは異なり、質問と回答を別の人物にしている
ffad446
to
c7ca10a
Compare
このPRのレビューをお願いいたします🙏 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
見ました!
テストが細かく書かれていて素晴らしいです〜自分も読んでいて勉強になりました!
2点ほど気になったことがあるのでコメントしたのでご確認お願いします🙏
@@ -20,7 +20,8 @@ class Notification < ApplicationRecord | |||
trainee_report: 10, | |||
moved_up_event_waiting_user: 11, | |||
create_pages: 12, | |||
following_report: 13 | |||
following_report: 13, | |||
chose_correct_answer: 14 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
他のkindの項目が過去形(か名詞)になっているので、
chosed_correct_answer
の方が良さそうです!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
現在形がchoose、過去形がchoseになるようです。
(辞書で調べるまですっかり忘れていました😓)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
確かにそうでした!
こちらの確認不足でした。申し訳ないです🙏
app/models/answer_callbacks.rb
Outdated
def notify_correct_answer(answer) | ||
question = answer.question | ||
watcher_ids = question.watches.pluck(:user_id) | ||
receiver_ids = [answer.user_id] | watcher_ids - [question.user_id] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここの処理って
通知を受け取るユーザー = 質問をWatchしているユーザー(質問者をのぞく) + (質問をWatchしていない)ベストアンサー回答者
という認識であっていますかね?
質問の回答者は自動的にWatchされるはずなので、わざわざWatchを外している回答者にも通知を送る必要はないかなと思ったのですが、いかがでしょう……!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
はい、その認識で間違いありません。
確かにあえてWatchを外しているユーザーに通知を送るのは迷惑そうですね💦
「Watchしているユーザー - 質問者」になるように修正します!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
修正とテストの変更もありがとうございますー😄
@yana-gi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rikuba
修正ありがとうございますー!
確認しましたのでapproveしますね🙆♂️
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
確認しました、OKですー🙆♂
@machida さんにメール周りのデザイン等確認をお願いしてみてください~
@rikuba デザイン了解ですー🙆♂️ |
@rikuba デザイン確認しましたー!!このままでOKですー |
では、マージしてしまいます🎉🎉🎉 |
Ref: #1776
概要
Q&Aにおいて、ベストアンサーが選ばれたときに「ベストアンサーの回答者」および「その質問をWatchしているユーザ(質問者を除く)」に対して、サイト内通知とメール通知を行います。
また、Discordの通知チャンネルに「質問「質問タイトル」のベストアンサーが選ばれました。」というメッセージを質問のURL付きで投稿します。
サイト内通知
メール通知
開発環境ではコンソールにletter_openerのパスが出力されます。
また、http://127.0.0.1:3000/rails/mailers/notification_mailer/chose_correct_answer からfixturesのデータを使ったプレビューを見ることができます。
Discordへの通知
開発環境ではコンソールに
Message to Discord.
が出力されます。