gemを使った通知機能 - fjordllc/bootcamp GitHub Wiki

概要

(注意: 以前は独自の通知実装をしていました。古い実装方法については通知機能 · fjordllc/bootcamp Wikiを参照してください。)

FBCには通知が下記の3種類ある。

  • サイト内通知(画面右上のベル)
  • メール通知
  • Discord通知

実装にはactive_deliveryabstract_notifierが使われている。

実装

3種類のうち2種類の通知はabstract_notifierを使って実装されている。(メール通知はaction_mailer)

まとめて通知

active_deliveryを使っているので、activity_deliveryを使うことでactivity_notifierとactivity_mailerの二つを一気に呼び出すことができる。

ActivityDelivery.notify(:graduated, sender: xxx, receiver: xxx)

Discord通知の違い

サイト内通知・メール通知とDiscord通知には構造上の違いがある。

サイト内通知・メール通知: 送り元と送り先のユーザーがある。
Discord通知: 送り元ユーザーも送り先ユーザーもない。(送り先チャンネルはある)

注意点

上記の違いから、Discord通知はactive_deliveryで一気に送ることができない。個別にDiscordNotifierを使う必要がある。

例えばactive_deliveryでまとめてしまうと、同じ通知を10人に送る場合にDiscordに10件の通知が飛ぶことになってしまう。