Conversation
ras0q
left a comment
There was a problem hiding this comment.
いくつか書きました
処理の流れが少し複雑なので、新規メンバーはpendingで追加することと条件に合わないメンバーは予定を削除することをコメントで書いておくと良いかもです
|
|
||
| attendeesMap := make(map[uuid.UUID]domain.ScheduleStatus) | ||
| for _, attendee := range currentEvent.Attendees { | ||
| attendeesMap[attendee.UserID] = attendee.Schedule | ||
| } |
There was a problem hiding this comment.
これより後ろの処理はグループが変わらなかったら行わなくても良い処理だと思うので、ここらへんで早期リターンするとよさそうです
There was a problem hiding this comment.
変更前の主催者メンバー全員が変更後の主催者メンバーであるとき早期リターンします
具体的には
(変更前主催者メンバーの数) = (変更後主催者メンバーの数) - (変更後主催者メンバーの中で新規主催者メンバーの数)
で取ります
There was a problem hiding this comment.
currentEvent.GroupID == params.GroupIDで取ることを想定していました
There was a problem hiding this comment.
たしかにそっちのほうがわかりやすそうです
一方で、
(変更前主催者メンバーの数) = (変更後主催者メンバーの数) - (変更後主催者メンバーの中で新規主催者メンバーの数)だと
変更前 Aさん Bさん
変更後 Aさん Bさん Cさん
みたいな状況のときもできそうです。
There was a problem hiding this comment.
なるほど
ちょっと考えたけど本質的には
- 新しいメンバーが追加されていないこと
- 削除するべきメンバーがいないこと
をチェックしたいから1つ目をboolでもって
if !newMemberAdded && len() == len()みたいに書くと分かりやすいかも?です
There was a problem hiding this comment.
if !newMemberAdded && len() == len()とif currentEvent.Group.ID == params.GroupIDは同じ動作になりそうだと思ったのですがどこが違いますでしょうか。
あと、一番最初にras0qさんが変更を入れてほしいとおっしゃられた場所と、実際に私が(変更前グループメンバーの数) = (変更後グループメンバーの数) - (変更後グループメンバーの中で新規グループメンバーの数)の変更を入れていた場所が違いました。
There was a problem hiding this comment.
今の変更点で不味そうなところがあったら、教えていただきたいです。
There was a problem hiding this comment.
返信が遅くなってすみません
(変更前グループメンバーの数) = (変更後グループメンバーの数) - (変更後グループメンバーの中で新規グループメンバーの数)
これなぜかずっと新規メンバーがいるかどうかを確認してると思ってたんですけど削除するメンバーがいるかどうかを確認してるんですね
There was a problem hiding this comment.
- // 変更前のグループメンバー全員が変更後のグループメンバーであるとき
+ // 変更後に参加者から除外されるメンバーがいないときとかにするといいのかな
|
そういえば直接関係ないけどこの前こんなissueがあるのを見つけた |
ras0q
left a comment
There was a problem hiding this comment.
コメントだけ返しました!
動作はいいと思います
一応動作確認だけして欲しいです🙏
|
#404 (comment) |
|
ここではテストは書かなくていいので手元でテストができればOKです 主催をA&BグループからAグループに変更したとき
くらいを確かめればいいかな |
|
@ras0q |
Close #404