-
Notifications
You must be signed in to change notification settings - Fork 71
gemを使った通知機能
Masaki Komagata edited this page Dec 20, 2022
·
1 revision
(注意: 以前は独自の通知実装をしていました。古い実装方法については通知機能 · fjordllc/bootcamp Wikiを参照してください。)
FBCには通知が下記の3種類ある。
- サイト内通知(画面右上のベル)
- メール通知
- Discord通知
実装にはactive_deliveryとabstract_notifierが使われている。
3種類のうち2種類の通知はabstract_notifierを使って実装されている。(メール通知はaction_mailer)
- サイト内通知: activity_notifier
- メール通知: activity_mailer
- Discord通知: discord_notifier
active_deliveryを使っているので、activity_deliveryを使うことでactivity_notifierとactivity_mailerの二つを一気に呼び出すことができる。
ActivityDelivery.notify(:graduated, sender: xxx, receiver: xxx)
サイト内通知・メール通知とDiscord通知には構造上の違いがある。
サイト内通知・メール通知: 送り元と送り先のユーザーがある。
Discord通知: 送り元ユーザーも送り先ユーザーもない。(送り先チャンネルはある)
上記の違いから、Discord通知はactive_deliveryで一気に送ることができない。個別にDiscordNotifierを使う必要がある。
例えばactive_deliveryでまとめてしまうと、同じ通知を10人に送る場合にDiscordに10件の通知が飛ぶことになってしまう。