MCPcopy Create free account
hub / github.com/daodst/chat / buildMembershipEvents

Function buildMembershipEvents

clientapi/routing/profile.go:586–628  ·  view source on GitHub ↗
(
	ctx context.Context,
	roomIDs []string,
	newProfile authtypes.Profile, userID string, cfg *config.ClientAPI,
	evTime time.Time, rsAPI api.ClientRoomserverAPI,
)

Source from the content-addressed store, hash-verified

584}
585
586func 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}

Callers 2

SetAvatarURLFunction · 0.85
SetDisplayNameFunction · 0.85

Calls 1

Tested by

no test coverage detected