mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-04 12:43:10 -06:00
Reuse IncrementalSync, use provided filter
This commit is contained in:
parent
446819e4ac
commit
9f239cfcf3
|
|
@ -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")
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue