aboutsummaryrefslogtreecommitdiff
path: root/roomserver/internal/input_membership.go
diff options
context:
space:
mode:
Diffstat (limited to 'roomserver/internal/input_membership.go')
-rw-r--r--roomserver/internal/input_membership.go37
1 files changed, 4 insertions, 33 deletions
diff --git a/roomserver/internal/input_membership.go b/roomserver/internal/input_membership.go
index bcecfca0..57a94596 100644
--- a/roomserver/internal/input_membership.go
+++ b/roomserver/internal/input_membership.go
@@ -19,6 +19,7 @@ import (
"fmt"
"github.com/matrix-org/dendrite/roomserver/api"
+ "github.com/matrix-org/dendrite/roomserver/internal/helpers"
"github.com/matrix-org/dendrite/roomserver/storage/shared"
"github.com/matrix-org/dendrite/roomserver/types"
"github.com/matrix-org/gomatrixserverlib"
@@ -59,13 +60,13 @@ func (r *RoomserverInternalAPI) updateMemberships(
var re *gomatrixserverlib.Event
targetUserNID := change.EventStateKeyNID
if change.removedEventNID != 0 {
- ev, _ := eventMap(events).lookup(change.removedEventNID)
+ ev, _ := helpers.EventMap(events).Lookup(change.removedEventNID)
if ev != nil {
re = &ev.Event
}
}
if change.addedEventNID != 0 {
- ev, _ := eventMap(events).lookup(change.addedEventNID)
+ ev, _ := helpers.EventMap(events).Lookup(change.addedEventNID)
if ev != nil {
ae = &ev.Event
}
@@ -120,7 +121,7 @@ func (r *RoomserverInternalAPI) updateMembership(
switch newMembership {
case gomatrixserverlib.Invite:
- return updateToInviteMembership(mu, add, updates, updater.RoomVersion())
+ return helpers.UpdateToInviteMembership(mu, add, updates, updater.RoomVersion())
case gomatrixserverlib.Join:
return updateToJoinMembership(mu, add, updates)
case gomatrixserverlib.Leave, gomatrixserverlib.Ban:
@@ -141,36 +142,6 @@ func (r *RoomserverInternalAPI) isLocalTarget(event *gomatrixserverlib.Event) bo
return isTargetLocalUser
}
-func updateToInviteMembership(
- mu *shared.MembershipUpdater, add *gomatrixserverlib.Event, updates []api.OutputEvent,
- roomVersion gomatrixserverlib.RoomVersion,
-) ([]api.OutputEvent, error) {
- // We may have already sent the invite to the user, either because we are
- // reprocessing this event, or because the we received this invite from a
- // remote server via the federation invite API. In those cases we don't need
- // to send the event.
- needsSending, err := mu.SetToInvite(*add)
- if err != nil {
- return nil, err
- }
- if needsSending {
- // We notify the consumers using a special event even though we will
- // notify them about the change in current state as part of the normal
- // room event stream. This ensures that the consumers only have to
- // consider a single stream of events when determining whether a user
- // is invited, rather than having to combine multiple streams themselves.
- onie := api.OutputNewInviteEvent{
- Event: add.Headered(roomVersion),
- RoomVersion: roomVersion,
- }
- updates = append(updates, api.OutputEvent{
- Type: api.OutputTypeNewInviteEvent,
- NewInviteEvent: &onie,
- })
- }
- return updates, nil
-}
-
func updateToJoinMembership(
mu *shared.MembershipUpdater, add *gomatrixserverlib.Event, updates []api.OutputEvent,
) ([]api.OutputEvent, error) {