-
Notifications
You must be signed in to change notification settings - Fork 28
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
BOTイベントを追加 #1894
BOTイベントを追加 #1894
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ちょっと悩んだ点はあったけど、多分可能な範囲で最大限綺麗な実装にはなっていると思います
ありがとう
余裕があれば、テストケースとしてsubscribeしてないbotに配信されないのを確かめるの欲しいな
あと、1つ疑問点として、このイベントはどのようなユースケースを想定しているのか教えてほしいです |
それを知らずに入れてしまうのは、流石に無責任だなと思ったので |
考えてみます、同じようなテストをしている箇所があったら教えて欲しいです |
BOTで作成したもの(TODOリストなど)の管理権をユーザーグループに割り当てるとき、とかを想定してます |
TAG_ADDEDとか |
なるほど! |
|
BOTイベントは、traQ全体としてのイベントを受け取って、その中でBOTにも通知すべきものをBOTに流しているという感じなので、traQのイベントの区分がそのまま適応されます |
リポジトリ内で、 |
Lines 54 to 57 in 7f3ffa1
USER_GROUP_UPDATED のペイロード勘違いしてるのに気づいたので直します、あとグループメンバー/アドミン系のイベント足します
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
一応見て、一個だけ気づいたことがあったので、お願いします。
あと、これがマージされたら、bot-consoleの書き換えは必須になると思います。 |
関係ないテスト落ちた...
|
approveもらったらbot-consoleとtraq-botとtraq-ws-botにもPR出す予定です |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1個だけお願いします。
テストについては、 #t/S/t/Serverにある通り、 t.SkipNow()
がいいと思いますが、このプルリクでやることではない気がするのでちょっと待ってください。
テストはmainブランチではもう直ってるので、mainをrebaseかmergeして解決してください |
masterをmergeしました |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
いいと思います。ありがとう!
bot-consoleのドキュメント書こうとして気づいたんですが、 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
確かにmodelそのまま返すのは良くなかったかも。
いいと思います。引き続きお願いします
typo修正 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
さんざん「よさそう」って言っておいて申し訳ないんですが、UserGroupMemberUpdated
とUserGroupMemberAdded
の違いは何でしょうか。
名前的にはupdatedの方はメンバーが削除されたときも発行されそうですが、今はremovedだけ発行されていそうです。
もしupdatedをメンバー削除のときも発行するなら、グループメンバー全員を乗せるのがいいのかな
対応するtraQ内イベントは↓で定義されています。 Lines 62 to 76 in 4306a93
コメントに従えば、イベント発行のタイミングは次のようになっているはずです。
|
repository/user_group.go の実装を読み違っていました。 |
Lines 67 to 71 in 0642dc8
ここのコメントを見れば分かる通り、イベントのフィールドにrole情報が含まれていません。なのでこのイベントにrole情報も載せようとなるとイベント発行側の実装もいじる必要が出てきて面倒になります traQ/service/bot/handler/ev_user_group_member_updated.go Lines 14 to 16 in 0642dc8
|
あれ、まだ実装読み違ってるかな。インターン終わったらじっくり見ます。長引いてごめん:pray: botへのイベント発行の流れをざっくりでいいから書いておいてもらえると助かる。 |
1: hubでイベントがpublishされます traQ/repository/gorm/user_group.go Lines 221 to 227 in 4306a93
2: 対応するイベントハンドラが呼ばれます Line 32 in 0642dc8
traQ/service/bot/handler/ev_user_group_member_updated.go Lines 14 to 33 in 0642dc8
3: traQ/service/bot/service_impl.go Lines 135 to 137 in 0642dc8
traQ/service/bot/event/dispatcher.go Lines 28 to 53 in 0642dc8
4: traQ/service/bot/event/dispatcher_impl.go Lines 42 to 57 in 0642dc8
|
ありがとう、理解しました。今回いじってない repository/gorm/user_group を変えなきゃいけないってことね。 全体に発行するイベントの変更はこのPRでやることではないし、イベント受け取ったらAPIを叩くようにすれば新しいroleは取れるので、roleの情報を乗せるのは要望が出てからでもいいと思ってきました。 approveしておきます。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
長引いてごめん。bot-consoleとbot系ライブラリも見ます。
close #1884
USER_GROUP_CREATED
,USER_GROUP_UPDATED
,USER_GROUP_DELETED
,USER_GROUP_MEMBER_ADDED
,USER_GROUP_MEMBER_UPDATED
,USER_GROUP_MEMBER_REMOVED
,USER_GROUP_ADMIN_ADDED
,USER_GROUP_ADMIN_REMOVED
を追加しました