refactor: update GMSL (#3058)
Sister PR to https://github.com/matrix-org/gomatrixserverlib/pull/364 Read this commit by commit to avoid going insane.
This commit is contained in:
parent
9fa39263c0
commit
72285b2659
306 changed files with 2117 additions and 1934 deletions
|
|
@ -13,6 +13,7 @@ import (
|
|||
"github.com/matrix-org/dendrite/syncapi/synctypes"
|
||||
"github.com/matrix-org/dendrite/syncapi/types"
|
||||
userapi "github.com/matrix-org/dendrite/userapi/api"
|
||||
"github.com/matrix-org/gomatrixserverlib/spec"
|
||||
|
||||
"github.com/matrix-org/dendrite/syncapi/notifier"
|
||||
"github.com/matrix-org/gomatrixserverlib"
|
||||
|
|
@ -70,7 +71,7 @@ func (p *PDUStreamProvider) CompleteSync(
|
|||
}
|
||||
|
||||
// Extract room state and recent events for all rooms the user is joined to.
|
||||
joinedRoomIDs, err := snapshot.RoomIDsWithMembership(ctx, req.Device.UserID, gomatrixserverlib.Join)
|
||||
joinedRoomIDs, err := snapshot.RoomIDsWithMembership(ctx, req.Device.UserID, spec.Join)
|
||||
if err != nil {
|
||||
req.Log.WithError(err).Error("p.DB.RoomIDsWithMembership failed")
|
||||
return from
|
||||
|
|
@ -110,7 +111,7 @@ func (p *PDUStreamProvider) CompleteSync(
|
|||
continue
|
||||
}
|
||||
req.Response.Rooms.Join[roomID] = jr
|
||||
req.Rooms[roomID] = gomatrixserverlib.Join
|
||||
req.Rooms[roomID] = spec.Join
|
||||
}
|
||||
|
||||
// Add peeked rooms.
|
||||
|
|
@ -185,7 +186,7 @@ func (p *PDUStreamProvider) IncrementalSync(
|
|||
}
|
||||
|
||||
for _, roomID := range syncJoinedRooms {
|
||||
req.Rooms[roomID] = gomatrixserverlib.Join
|
||||
req.Rooms[roomID] = spec.Join
|
||||
}
|
||||
|
||||
if len(stateDeltas) == 0 {
|
||||
|
|
@ -312,8 +313,8 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
|
|||
|
||||
hasMembershipChange := false
|
||||
for _, recentEvent := range recentStreamEvents {
|
||||
if recentEvent.Type() == gomatrixserverlib.MRoomMember && recentEvent.StateKey() != nil {
|
||||
if membership, _ := recentEvent.Membership(); membership == gomatrixserverlib.Join {
|
||||
if recentEvent.Type() == spec.MRoomMember && recentEvent.StateKey() != nil {
|
||||
if membership, _ := recentEvent.Membership(); membership == spec.Join {
|
||||
req.MembershipChanges[*recentEvent.StateKey()] = struct{}{}
|
||||
}
|
||||
hasMembershipChange = true
|
||||
|
|
@ -357,7 +358,7 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
|
|||
}
|
||||
|
||||
switch delta.Membership {
|
||||
case gomatrixserverlib.Join:
|
||||
case spec.Join:
|
||||
jr := types.NewJoinResponse()
|
||||
if hasMembershipChange {
|
||||
jr.Summary, err = snapshot.GetRoomSummary(ctx, delta.RoomID, device.UserID)
|
||||
|
|
@ -373,7 +374,7 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
|
|||
jr.State.Events = synctypes.HeaderedToClientEvents(delta.StateEvents, synctypes.FormatSync)
|
||||
req.Response.Rooms.Join[delta.RoomID] = jr
|
||||
|
||||
case gomatrixserverlib.Peek:
|
||||
case spec.Peek:
|
||||
jr := types.NewJoinResponse()
|
||||
jr.Timeline.PrevBatch = &prevBatch
|
||||
// TODO: Apply history visibility on peeked rooms
|
||||
|
|
@ -382,10 +383,10 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
|
|||
jr.State.Events = synctypes.HeaderedToClientEvents(delta.StateEvents, synctypes.FormatSync)
|
||||
req.Response.Rooms.Peek[delta.RoomID] = jr
|
||||
|
||||
case gomatrixserverlib.Leave:
|
||||
case spec.Leave:
|
||||
fallthrough // transitions to leave are the same as ban
|
||||
|
||||
case gomatrixserverlib.Ban:
|
||||
case spec.Ban:
|
||||
lr := types.NewLeaveResponse()
|
||||
lr.Timeline.PrevBatch = &prevBatch
|
||||
lr.Timeline.Events = synctypes.HeaderedToClientEvents(events, synctypes.FormatSync)
|
||||
|
|
@ -527,7 +528,7 @@ func (p *PDUStreamProvider) getJoinResponseForCompleteSync(
|
|||
event := events[0]
|
||||
// If this is the beginning of the room, we can't go back further. We're going to return
|
||||
// the TopologyToken from the last event instead. (Synapse returns the /sync next_Batch)
|
||||
if event.Type() == gomatrixserverlib.MRoomCreate && event.StateKeyEquals("") {
|
||||
if event.Type() == spec.MRoomCreate && event.StateKeyEquals("") {
|
||||
event = events[len(events)-1]
|
||||
}
|
||||
backwardTopologyPos, backwardStreamPos, err = snapshot.PositionInTopology(ctx, event.EventID())
|
||||
|
|
@ -575,7 +576,7 @@ func (p *PDUStreamProvider) lazyLoadMembers(
|
|||
newStateEvents := make([]*gomatrixserverlib.HeaderedEvent, 0, len(stateEvents))
|
||||
// Remove existing membership events we don't care about, e.g. users not in the timeline.events
|
||||
for _, event := range stateEvents {
|
||||
if event.Type() == gomatrixserverlib.MRoomMember && event.StateKey() != nil {
|
||||
if event.Type() == spec.MRoomMember && event.StateKey() != nil {
|
||||
// If this is a gapped incremental sync, we still want this membership
|
||||
isGappedIncremental := limited && incremental
|
||||
// We want this users membership event, keep it in the list
|
||||
|
|
@ -598,7 +599,7 @@ func (p *PDUStreamProvider) lazyLoadMembers(
|
|||
// Query missing membership events
|
||||
filter := synctypes.DefaultStateFilter()
|
||||
filter.Senders = &wantUsers
|
||||
filter.Types = &[]string{gomatrixserverlib.MRoomMember}
|
||||
filter.Types = &[]string{spec.MRoomMember}
|
||||
memberships, err := snapshot.GetStateEventsForRoom(ctx, roomID, &filter)
|
||||
if err != nil {
|
||||
return stateEvents, err
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue