fjordllc / bootcamp

プログラマー向けEラーニングシステム
https://bootcamp.fjord.jp
MIT License
281 stars 71 forks source link

「イベントのお知らせ」に記載されるイベントの並び順を開始時間順に変更した #7923

Closed ham-cap closed 1 month ago

ham-cap commented 3 months ago

Issue

概要

・Discordに通知される「イベントのお知らせ」の通知に記載されるイベントが複数ある場合に開始時間順に並ぶように変更しました。この変更に伴い、テストの際にイベントの並び順を確認できるようにfixturesのデータとテストの記載も変更しました。

変更確認方法

⚠️このPRにおける動作確認については、Discordに対して行われる通知の内容を確認するため、Discordサーバー(FBCとは別のもの)の用意とチャンネルの作成及び当該チャンネルのWebhook URLの取得をしていただく必要があります。お手数ですが、以下の手順にて確認をお願いいたします🙇‍♂️(既に何らかのissueで確認用のDiscordサーバーをお持ちの方はそちらをご使用いただいて差し支えございません🙆‍♂️)

Discordサーバーの準備

  1. BootcampのWikiにある、Develop環境でのDiscord通知の確認方法 に記載の手順にしたがってサーバー追加、チャンネル作成、当該チャンネルのWebhook URLの取得を行ってください。

環境変数の設定

  1. 同じくBootcampのWikiにあるDiscord通知を参照し、環境変数の設定をしてください。Wikiにも言及のあるdirenvを利用するのが手軽で便利です。 direnvの導入の仕方については公式のほか、以下のページもわかりやすかったので適宜ご参照ください。 参考:direnvを使おう

今回であれば.envrcの中に以下のとおり設定すると全員宛のDiscord通知の送信先が上記で取得したDiscordサーバーになります。

export DISCORD_ALL_WEBHOOK_URL=取得したWebhook URL

動作確認

システムテストを実行して実際に通知をとばし、本文を確認します。

  1. feature/change-events-order-in-events-notifications-into-chronological-orderをローカルに取り込む
  2. bin/rails test test/system/notification/regular_events_test.rbを実行する
  3. 上記で作成したDiscordチャンネルに「イベントのお知らせ」が届くので、5/6開催分のイベントが開始時間の早い順に並んでいることを確認する

⚠️notify_coming_soon_regular_eventsのテストが失敗しますが、これは上記で設定したとおり確認用のDiscordサーバーに通知を送信するためにDevelopment環境で独自の環境変数(DISCORD_ALL_WEBHOOK_URL)を設定していることによるものです。DISCORD_ALL_WEBHOOK_URLに何も設定しない状態(= 本番と同じ状態)で実行すると通ります。

Screenshot

変更前

_全員への通知___ham-cap_ハム_のサーバー_-_Discord-2

変更後

_全員への通知___ham-cap_ハム_のサーバー_-_Discord
ham-cap commented 3 months ago

@nakamu-kazu222 お疲れ様です! こちらのPRにつきまして、お手隙の際にレビューをお願いできますでしょうか🙏 ご都合が悪い場合は遠慮せずお知らせください🙆‍♂️ よろしくお願いいたします!

nakamu-kazu222 commented 3 months ago

@ham-cap

お疲れ様です! 1週間ほどお時間をいただくと思いますが、よろしいでしょうか?

ham-cap commented 2 months ago

@nakamu-kazu222 急ぎではないので問題ありません🙆‍♂️ よろしくお願いします🙏

nakamu-kazu222 commented 2 months ago

@ham-cap

お疲れ様です! すみません、動作確認がうまく実行されないので、確認していただいてもよろしいでしょうか?

私が行った手順は以下です

  1. Discordにテスト用のサーバーを用意する
  2. ウェブフックURLをコピーして、app/models/chat_notifier.rbの13行目に追加する
    if Rails.env.production?
      Discord::Notifier.message(message, username:, url: webhook_url)
    else
      Discord::Notifier.message(message, username: username, url: 'ウェブフックURL')
      Rails.logger.info 'Message to Discord.'
    end
  3. direnvの設定
    • インストール
    • % brew install direnv
    • shellにhookを追加する
    • % direnv edit .
      export EDITOR=vim
      eval "$(direnv hook bash)"
      export DISCORD_ALL_WEBHOOK_URL=取得したWebhook URL
  4. % bin/rails test test/system/notification/regular_events_test.rbを実行する
    • ログなどは表示されない
ham-cap commented 2 months ago

@nakamu-kazu222 ご連絡ありがとうございます🙏 確証はないのですが、direnv edit .で編集する.envrcに記載するのは

export DISCORD_ALL_WEBHOOK_URL=取得したWebhook URL

のみで、それ以外の

export EDITOR=vim
eval "$(direnv hook bash)"

の部分はshellの設定ファイル(.bashrc.zshrc)にご記載いただくものになりますので、その点を一度ご確認いただけますでしょうか👀 私の場合だとshellはzshなので.zshrcに記載しました!

ham-cap commented 2 months ago

@nakamu-kazu222 ご指摘ありがとうございます🙏 たしかにご提案いただいたタイミングの方が読みやすさ的にも良いと思えましたので修正させていただきました🙌 再度ご確認ください🙇‍♂️

ham-cap commented 2 months ago

@nakamu-kazu222 お疲れ様ですー こちらのレビューいかがでしょうか?👀 お忙しい中恐縮ですが、よろしくお願いいたします🙏

nakamu-kazu222 commented 2 months ago

@ham-cap

返信が遅れまして、申し訳ございません。

ただいまレビューしております。 本日中にはレビューが完了する予定です。 よろしくお願い致します。

nakamu-kazu222 commented 2 months ago

@ham-cap

動作、コードともに問題ございませんので、Approveしました。 返信にお時間いただいてしまい、申し訳ございません。

今後ともよろしくお願いいたします

ham-cap commented 1 month ago

@nakamu-kazu222 お忙しい中ご確認いただきありがとうございました🙏

@komagata メンバーにApproveいただきましたのでレビューをお願いいたします🙇‍♂️