Reuse IncrementalSync, use provided filter

This commit is contained in:
Till Faelligen 2022-04-25 15:59:29 +02:00
parent 446819e4ac
commit 9f239cfcf3
3 changed files with 3 additions and 38 deletions

View file

@ -30,37 +30,7 @@ func (p *AccountDataStreamProvider) CompleteSync(
ctx context.Context, ctx context.Context,
req *types.SyncRequest, req *types.SyncRequest,
) types.StreamPosition { ) types.StreamPosition {
dataReq := &userapi.QueryAccountDataRequest{ return p.IncrementalSync(ctx, req, 0, p.LatestPosition(ctx))
UserID: req.Device.UserID,
}
dataRes := &userapi.QueryAccountDataResponse{}
if err := p.userAPI.QueryAccountData(ctx, dataReq, dataRes); err != nil {
req.Log.WithError(err).Error("p.userAPI.QueryAccountData failed")
return p.LatestPosition(ctx)
}
for datatype, databody := range dataRes.GlobalAccountData {
req.Response.AccountData.Events = append(
req.Response.AccountData.Events,
gomatrixserverlib.ClientEvent{
Type: datatype,
Content: gomatrixserverlib.RawJSON(databody),
},
)
}
for r, j := range req.Response.Rooms.Join {
for datatype, databody := range dataRes.RoomAccountData[r] {
j.AccountData.Events = append(
j.AccountData.Events,
gomatrixserverlib.ClientEvent{
Type: datatype,
Content: gomatrixserverlib.RawJSON(databody),
},
)
req.Response.Rooms.Join[r] = j
}
}
return p.LatestPosition(ctx)
} }
func (p *AccountDataStreamProvider) IncrementalSync( func (p *AccountDataStreamProvider) IncrementalSync(
@ -72,10 +42,9 @@ func (p *AccountDataStreamProvider) IncrementalSync(
From: from, From: from,
To: to, To: to,
} }
accountDataFilter := gomatrixserverlib.DefaultEventFilter() // TODO: use filter provided in req instead
dataTypes, err := p.DB.GetAccountDataInRange( dataTypes, err := p.DB.GetAccountDataInRange(
ctx, req.Device.UserID, r, &accountDataFilter, ctx, req.Device.UserID, r, &req.Filter.AccountData,
) )
if err != nil { if err != nil {
req.Log.WithError(err).Error("p.DB.GetAccountDataInRange failed") req.Log.WithError(err).Error("p.DB.GetAccountDataInRange failed")

View file

@ -1,7 +1,3 @@
# Blacklisted until matrix-org/dendrite#862 is reverted due to Riot bug
Latest account data appears in v2 /sync
# Relies on a rejected PL event which will never be accepted into the DAG # Relies on a rejected PL event which will never be accepted into the DAG
# Caused by <https://github.com/matrix-org/sytest/pull/911> # Caused by <https://github.com/matrix-org/sytest/pull/911>

View file

@ -154,7 +154,7 @@ Can add account data
Can add account data to room Can add account data to room
Can get account data without syncing Can get account data without syncing
Can get room account data without syncing Can get room account data without syncing
#Latest account data appears in v2 /sync Latest account data appears in v2 /sync
New account data appears in incremental v2 /sync New account data appears in incremental v2 /sync
Checking local federation server Checking local federation server
Inbound federation can query profile data Inbound federation can query profile data