( ctx context.Context, roomIDs []string, newProfile authtypes.Profile, userID string, cfg *config.ClientAPI, evTime time.Time, rsAPI api.ClientRoomserverAPI, )
| 584 | } |
| 585 | |
| 586 | func buildMembershipEvents( |
| 587 | ctx context.Context, |
| 588 | roomIDs []string, |
| 589 | newProfile authtypes.Profile, userID string, cfg *config.ClientAPI, |
| 590 | evTime time.Time, rsAPI api.ClientRoomserverAPI, |
| 591 | ) ([]*gomatrixserverlib.HeaderedEvent, error) { |
| 592 | evs := []*gomatrixserverlib.HeaderedEvent{} |
| 593 | |
| 594 | for _, roomID := range roomIDs { |
| 595 | verReq := api.QueryRoomVersionForRoomRequest{RoomID: roomID} |
| 596 | verRes := api.QueryRoomVersionForRoomResponse{} |
| 597 | if err := rsAPI.QueryRoomVersionForRoom(ctx, &verReq, &verRes); err != nil { |
| 598 | return nil, err |
| 599 | } |
| 600 | |
| 601 | builder := gomatrixserverlib.EventBuilder{ |
| 602 | Sender: userID, |
| 603 | RoomID: roomID, |
| 604 | Type: "m.room.member", |
| 605 | StateKey: &userID, |
| 606 | } |
| 607 | |
| 608 | content := gomatrixserverlib.MemberContent{ |
| 609 | Membership: gomatrixserverlib.Join, |
| 610 | } |
| 611 | |
| 612 | content.DisplayName = newProfile.DisplayName |
| 613 | content.AvatarURL = newProfile.AvatarURL |
| 614 | |
| 615 | if err := builder.SetContent(content); err != nil { |
| 616 | return nil, err |
| 617 | } |
| 618 | |
| 619 | event, err := eventutil.QueryAndBuildEvent(ctx, &builder, cfg.Matrix, evTime, rsAPI, nil) |
| 620 | if err != nil { |
| 621 | return nil, err |
| 622 | } |
| 623 | |
| 624 | evs = append(evs, event.Headered(verRes.RoomVersion)) |
| 625 | } |
| 626 | |
| 627 | return evs, nil |
| 628 | } |
no test coverage detected