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

Method PerformInvite

federationapi/internal/perform.go:575–613  ·  view source on GitHub ↗

PerformLeaveRequest implements api.FederationInternalAPI

(
	ctx context.Context,
	request *api.PerformInviteRequest,
	response *api.PerformInviteResponse,
)

Source from the content-addressed store, hash-verified

573
574// PerformLeaveRequest implements api.FederationInternalAPI
575func (r *FederationInternalAPI) PerformInvite(
576 ctx context.Context,
577 request *api.PerformInviteRequest,
578 response *api.PerformInviteResponse,
579) (err error) {
580 if request.Event.StateKey() == nil {
581 return errors.New("invite must be a state event")
582 }
583
584 _, destination, err := gomatrixserverlib.SplitID('@', *request.Event.StateKey())
585 if err != nil {
586 return fmt.Errorf("gomatrixserverlib.SplitID: %w", err)
587 }
588
589 logrus.WithFields(logrus.Fields{
590 "event_id": request.Event.EventID(),
591 "user_id": *request.Event.StateKey(),
592 "room_id": request.Event.RoomID(),
593 "room_version": request.RoomVersion,
594 "destination": destination,
595 }).Info("Sending invite")
596
597 inviteReq, err := gomatrixserverlib.NewInviteV2Request(request.Event, request.InviteRoomState)
598 if err != nil {
599 return fmt.Errorf("gomatrixserverlib.NewInviteV2Request: %w", err)
600 }
601
602 inviteRes, err := r.federation.SendInviteV2(ctx, destination, inviteReq)
603 if err != nil {
604 return fmt.Errorf("r.federation.SendInviteV2: failed to send invite: %w", err)
605 }
606
607 inviteEvent, err := inviteRes.Event.UntrustedEvent(request.RoomVersion)
608 if err != nil {
609 return fmt.Errorf("r.federation.SendInviteV2 failed to decode event response: %w", err)
610 }
611 response.Event = inviteEvent.Headered(request.RoomVersion)
612 return nil
613}
614
615// PerformServersAlive implements api.FederationInternalAPI
616func (r *FederationInternalAPI) PerformBroadcastEDU(

Callers

nothing calls this directly

Calls 1

SendInviteV2Method · 0.80

Tested by

no test coverage detected