mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-15 10:03:09 -06:00
Fix statekey usage in syncapi/keychange
This commit is contained in:
parent
199e1f0c59
commit
2e016a5ea1
|
|
@ -169,12 +169,16 @@ func TrackChangedUsers(
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
for _, state := range stateRes.Rooms {
|
for roomID, state := range stateRes.Rooms {
|
||||||
for tuple, membership := range state {
|
for tuple, membership := range state {
|
||||||
if membership != spec.Join {
|
if membership != spec.Join {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
queryRes.UserIDsToCount[tuple.StateKey]--
|
user, queryErr := rsAPI.QueryUserIDForSender(ctx, roomID, spec.SenderID(tuple.StateKey))
|
||||||
|
if queryErr != nil || user == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
queryRes.UserIDsToCount[user.String()]--
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -211,14 +215,18 @@ func TrackChangedUsers(
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, left, err
|
return nil, left, err
|
||||||
}
|
}
|
||||||
for _, state := range stateRes.Rooms {
|
for roomID, state := range stateRes.Rooms {
|
||||||
for tuple, membership := range state {
|
for tuple, membership := range state {
|
||||||
if membership != spec.Join {
|
if membership != spec.Join {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
// new user who we weren't previously sharing rooms with
|
// new user who we weren't previously sharing rooms with
|
||||||
if _, ok := queryRes.UserIDsToCount[tuple.StateKey]; !ok {
|
if _, ok := queryRes.UserIDsToCount[tuple.StateKey]; !ok {
|
||||||
changed = append(changed, tuple.StateKey) // changed is returned
|
user, err := rsAPI.QueryUserIDForSender(ctx, roomID, spec.SenderID(tuple.StateKey))
|
||||||
|
if err != nil || user == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
changed = append(changed, user.String()) // changed is returned
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,10 @@ type mockRoomserverAPI struct {
|
||||||
roomIDToJoinedMembers map[string][]string
|
roomIDToJoinedMembers map[string][]string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *mockRoomserverAPI) QueryUserIDForSender(ctx context.Context, roomID string, senderID spec.SenderID) (*spec.UserID, error) {
|
||||||
|
return spec.NewUserID(string(senderID), true)
|
||||||
|
}
|
||||||
|
|
||||||
// QueryRoomsForUser retrieves a list of room IDs matching the given query.
|
// QueryRoomsForUser retrieves a list of room IDs matching the given query.
|
||||||
func (s *mockRoomserverAPI) QueryRoomsForUser(ctx context.Context, req *api.QueryRoomsForUserRequest, res *api.QueryRoomsForUserResponse) error {
|
func (s *mockRoomserverAPI) QueryRoomsForUser(ctx context.Context, req *api.QueryRoomsForUserRequest, res *api.QueryRoomsForUserResponse) error {
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue