aboutsummaryrefslogtreecommitdiff
path: root/syncapi/storage
diff options
context:
space:
mode:
authorNeil Alexander <neilalexander@users.noreply.github.com>2020-03-19 13:15:35 +0000
committerNeil Alexander <neilalexander@users.noreply.github.com>2020-03-19 13:15:35 +0000
commit944d454cb03445e7c173d1b44e4254f425d09b09 (patch)
tree8fffdf383cef38ef436dce642d593f2a0044ef93 /syncapi/storage
parentad5849d2224245e1277b8bc7d3e2104ed6061a99 (diff)
Fix SQLite problems after sync API changes
Diffstat (limited to 'syncapi/storage')
-rw-r--r--syncapi/storage/sqlite3/syncserver.go17
1 files changed, 7 insertions, 10 deletions
diff --git a/syncapi/storage/sqlite3/syncserver.go b/syncapi/storage/sqlite3/syncserver.go
index 221d9672..a06fc91f 100644
--- a/syncapi/storage/sqlite3/syncserver.go
+++ b/syncapi/storage/sqlite3/syncserver.go
@@ -664,6 +664,7 @@ func (d *SyncServerDatasource) getResponseWithPDUsForCompleteSync(
// We don't include a device here as we don't need to send down
// transaction IDs for complete syncs
recentEvents := d.StreamEventsToEvents(nil, recentStreamEvents)
+ stateEvents = removeDuplicates(stateEvents, recentEvents)
jr := types.NewJoinResponse()
jr.Timeline.PrevBatch = types.NewPaginationTokenFromTypeAndPosition(
types.PaginationTokenTypeTopology, backwardTopologyPos, 0,
@@ -803,8 +804,8 @@ func (d *SyncServerDatasource) addInvitesToResponse(
}
for roomID, inviteEvent := range invites {
ir := types.NewInviteResponse()
- ir.InviteState.Events = gomatrixserverlib.ToClientEvents(
- []gomatrixserverlib.Event{inviteEvent.Event}, gomatrixserverlib.FormatSync,
+ ir.InviteState.Events = gomatrixserverlib.HeaderedToClientEvents(
+ []gomatrixserverlib.HeaderedEvent{inviteEvent}, gomatrixserverlib.FormatSync,
)
// TODO: add the invite state from the invite event.
res.Rooms.Invite[roomID] = *ir
@@ -856,12 +857,8 @@ func (d *SyncServerDatasource) addRoomDeltaToResponse(
if err != nil {
return err
}
- headeredRecentEvents := d.StreamEventsToEvents(device, recentStreamEvents)
- var recentEvents []gomatrixserverlib.Event
- for _, event := range d.StreamEventsToEvents(nil, recentStreamEvents) {
- recentEvents = append(recentEvents, event.Event)
- }
- delta.stateEvents = removeDuplicates(delta.stateEvents, headeredRecentEvents)
+ recentEvents := d.StreamEventsToEvents(device, recentStreamEvents)
+ delta.stateEvents = removeDuplicates(delta.stateEvents, recentEvents)
backwardTopologyPos := d.getBackwardTopologyPos(ctx, txn, recentStreamEvents)
switch delta.membership {
@@ -871,7 +868,7 @@ func (d *SyncServerDatasource) addRoomDeltaToResponse(
jr.Timeline.PrevBatch = types.NewPaginationTokenFromTypeAndPosition(
types.PaginationTokenTypeTopology, backwardTopologyPos, 0,
).String()
- jr.Timeline.Events = gomatrixserverlib.ToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
+ jr.Timeline.Events = gomatrixserverlib.HeaderedToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
jr.Timeline.Limited = false // TODO: if len(events) >= numRecents + 1 and then set limited:true
jr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.stateEvents, gomatrixserverlib.FormatSync)
res.Rooms.Join[delta.roomID] = *jr
@@ -884,7 +881,7 @@ func (d *SyncServerDatasource) addRoomDeltaToResponse(
lr.Timeline.PrevBatch = types.NewPaginationTokenFromTypeAndPosition(
types.PaginationTokenTypeTopology, backwardTopologyPos, 0,
).String()
- lr.Timeline.Events = gomatrixserverlib.ToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
+ lr.Timeline.Events = gomatrixserverlib.HeaderedToClientEvents(recentEvents, gomatrixserverlib.FormatSync)
lr.Timeline.Limited = false // TODO: if len(events) >= numRecents + 1 and then set limited:true
lr.State.Events = gomatrixserverlib.HeaderedToClientEvents(delta.stateEvents, gomatrixserverlib.FormatSync)
res.Rooms.Leave[delta.roomID] = *lr