Return r.from instead of an empty token

This commit is contained in:
Till Faelligen 2023-07-11 11:21:07 +02:00
parent dda77adb75
commit bb3566a649
No known key found for this signature in database
GPG key ID: ACCDC9606D472758
2 changed files with 8 additions and 7 deletions

View file

@ -336,10 +336,10 @@ func (r *messagesReq) retrieveEvents(ctx context.Context, rsAPI api.SyncRoomserv
// removed all of them. This means there are no events for this user
// anymore. Let them know.
if errors.Is(err, shared.ErrNoEventsForFilter) {
return []synctypes.ClientEvent{}, emptyToken, emptyToken, nil
return []synctypes.ClientEvent{}, *r.from, emptyToken, nil
}
err = fmt.Errorf("GetEventsInRange: %w", err)
return []synctypes.ClientEvent{}, emptyToken, emptyToken, err
return []synctypes.ClientEvent{}, *r.from, emptyToken, err
}
var events []*rstypes.HeaderedEvent
@ -354,17 +354,17 @@ func (r *messagesReq) retrieveEvents(ctx context.Context, rsAPI api.SyncRoomserv
// on the ordering), or we've reached a backward extremity.
if len(streamEvents) == 0 {
if events, err = r.handleEmptyEventsSlice(); err != nil {
return []synctypes.ClientEvent{}, emptyToken, emptyToken, err
return []synctypes.ClientEvent{}, *r.from, emptyToken, err
}
} else {
if events, err = r.handleNonEmptyEventsSlice(streamEvents); err != nil {
return []synctypes.ClientEvent{}, emptyToken, emptyToken, err
return []synctypes.ClientEvent{}, *r.from, emptyToken, err
}
}
// If we didn't get any event, we don't need to proceed any further.
if len(events) == 0 {
return []synctypes.ClientEvent{}, emptyToken, emptyToken, nil
return []synctypes.ClientEvent{}, *r.from, emptyToken, nil
}
// Apply room history visibility filter
@ -382,7 +382,7 @@ func (r *messagesReq) retrieveEvents(ctx context.Context, rsAPI api.SyncRoomserv
// No events left after applying history visibility
if len(filteredEvents) == 0 {
return []synctypes.ClientEvent{}, emptyToken, emptyToken, nil
return []synctypes.ClientEvent{}, *r.from, emptyToken, nil
}
// Get the position of the first and the last event in the room's topology.

View file

@ -224,7 +224,8 @@ func TestGetEventsInRangeWithTopologyToken(t *testing.T) {
})
}
// The purpose of this test is to ensure that backfill does indeed go backwards, using a topology token
// The purpose of this test is to ensure that backfilling returns no start/end if a given filter removes
// all events.
func TestGetEventsInRangeWithTopologyTokenNoEventsForFilter(t *testing.T) {
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
db, close := MustCreateDatabase(t, dbType)