話し合うこと
1. Crowi のモデルの理解
- Activity
- Notification
- Watcher
最初は丸パクリしようとしていたが、変更した方が良さそう
-
Event とModelで完結している
- モデル間で依存しまくっているので良くない
-
Service間は依存を許す
- ActivityService, NotificationService は他から依存されてもよい
変更しなくても良い部分
- 1 Activity につき複数 Notificationが作られる
2. GROWI での要求の把握
-
Activity のデータを管理画面から閲覧できるようにしたい(audit log として利用)
-
Bookmark
- Bookmark / Favourite をONにしたら自動的にSubscribeされるようにする
3. 最終進化形の要件定義
- Activity は一定期間が過ぎたら消えるようにしたい
- expireAfterSeconds
- https://docs.mongodb.com/v3.6/core/index-ttl/ external_link
- InAppNotification の「持続タイプ」の話
- Export Markdown Job 用
- エキスポートしている最中 -> 通知一覧の中にloadingのアイコンを表示する
- エキスポートが完了 -> loadingのアイコンが消えて、完了しましたステータスになる
- Export Markdown Job 用
詳細設計メモ
- EventEmitter で emit するイベント型を作る
ActivityEvent<T>
(仮) は、T型の付属情報を持つ
- 上記に対して、
CommentAdapter extends ActivityAdapter
を作る(processor 的なイメージ)ActivityEvent<T>
を処理して InAppNotification を作ったりいろいろやる
getNotificationTargetUsers
は InAppNotificationService に移動
4. マイルストーン定義
- Comment と ページ更新を同時に進める
- Activityの削除はしなくて良い