Skip to content
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

相談部屋のコメントをDiscordチャットに通知する #4206

Merged
merged 1 commit into from
Feb 16, 2022

Conversation

garammasala29
Copy link
Contributor

@garammasala29 garammasala29 commented Feb 11, 2022

Issue

概要

相談部屋に受講生(その相談部屋の主)からコメントがあったら、Discordの運営のチャンネルに通知が来るようにしました。

  • Discordの運営のチャンネルは管理者のユーザーが見れるプライベートチャンネルのようです。
  • adminのユーザーがコメントした場合は通知されないようにしています。

運営チャンネルのウェブフックはDISCORD_ADMIN_WEBHOOK_URLに統一されているようなので、それに沿う形にしました。
通知内容に関しては、町田さんより本文とURLを含めてほしいとのコメントをいただきましたので、そのような仕様しました。

前提

Discordへの通知に関しては #3471 を参考にして書いています。
今回のIssueはDiscord通知において開発環境と本番環境で実装する内容が変わってくるため、変更分をそのままマージすることができません。
なのでレビューで動作確認をする際は下でまとめた確認方法の手順を行っていただく必要があります。

ローカルでの動作確認方法にお手間を取らせてしまいますが、ご確認のほどよろしくお願いします🙏

確認方法

  1. ブランチ feature/notify-admin-chat-of-talkroom-commentをローカルに取り込む

  2. dotenv-railsというgemをGemfileに追記(Gemfile82行目)し、インストール

# Gemfile
group :development do 
# not default
gem 'view_source_map'
+ gem 'dotenv-rails' # view_source_mapの下に追加して下さい
% bundle install
  1. .envファイルをbootcampディレクトリ配下に作成する
% touch .env
  1. 自分用のDiscordサーバーを作成する
  1. 4で作成したサーバーのウェブフックURLを こちらの手順に従ってコピーしておく
    日本語版ではサーバー設定>連携サービス>ウェブフックを作成>ウェブフックURLをコピー

  2. コピーしたウェブフックURLを環境変数として使いたいので、作成した.envファイルには下の内容を追記する

DISCORD_ADMIN_WEBHOOK_URL = コピーしたウェブフックURL
  1. app/model/chat_norifier.rbのmessageメソッドの記述を変更する
# app/model/chat_norifier.rb
class ChatNotifier
  def self.message(
    message,
    username: 'ピヨルド',
    webhook_url: ENV['DISCORD_NOTICE_WEBHOOK_URL']
  )

-   if Rails.env.production?
+   if Rails.env.development?
      Discord::Notifier.message(message, username: username, url: webhook_url)
    else
      Rails.logger.info 'Message to Discord.'
    end
  end
..

Rails.env.development?にすることでtrueの分岐を実行することができます。
参考:【Rails】 envメソッドで環境を確認する方法と各コマンドの指定方法 - Pikawaka

  1. 動作確認をする
    (1) admin以外のユーザーでログイン(kimuraでログインしました)
    (2) 自身の相談部屋からコメントします。
    (3) 自分で作成したDiscordチャンネルに通知がきます。
    image
    (4) adminのユーザーで同じ相談部屋にコメントすると通知は来ません(komagataで確認)

以上となっております。
お困りのことなどありましたら、何なりとお申し付けください🙏

@garammasala29
Copy link
Contributor Author

テストが落ちてしまいますが、今回PRで追加したものは通過しており、下記問題に起因しているようです。
#4201

@garammasala29
Copy link
Contributor Author

@maeda-seina さん
お疲れ様です。お手隙の際にこちらのレビューをお願いしたいです🙏
動作確認がやや複雑なため、不明な点がありましたらDiscord等で気兼ねなく連絡ください

@garammasala29 garammasala29 marked this pull request as ready for review February 12, 2022 03:36
@garammasala29 garammasala29 self-assigned this Feb 12, 2022
Copy link
Contributor

@maeda-seina maeda-seina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@garammasala29 さん
お疲れ様です!
レビュー遅れてすみません💦
動作確認について、問題ありませんでした!(adminでコメントした際にDiscordの方に通知が来ないことも確認できました!)
image
また、全体的に説明が細かく書かれていてとてもわかりやすかったです。(動作確認方法も丁寧に記載していただき、ありがとうございます😄)

@garammasala29
Copy link
Contributor Author

garammasala29 commented Feb 14, 2022

@maeda-seina さん
お忙しい中、レビューいただきありがとうございました!
今後ともよろしくお願いします😊

@garammasala29
Copy link
Contributor Author

@komagata
お疲れ様です。お手隙の際にこちらのレビューをお願いいたします🙏

@komagata
Copy link
Member

@garammasala29 最新のmainを取り込んでテストが通るようにしてみてください〜

@garammasala29 garammasala29 force-pushed the feature/notify-admin-chat-of-talkroom-comment branch from 0bb37c2 to 2689ceb Compare February 15, 2022 08:01
@garammasala29
Copy link
Contributor Author

@komagata さん
お疲れ様です。テストが通ったことを確認できました。よろしくお願いします!

Copy link
Member

@komagata komagata left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

確認しました、OKですー🙆‍♂️

@komagata komagata merged commit edec62f into main Feb 16, 2022
@komagata komagata deleted the feature/notify-admin-chat-of-talkroom-comment branch February 16, 2022 03:46
@github-actions github-actions bot mentioned this pull request Feb 16, 2022
54 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants