Exclude events we don't know state for
This commit is contained in:
parent
c279229f6f
commit
7928138034
|
@ -237,7 +237,11 @@ func (r *Queryer) QueryMembershipAtEvent(
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, eventID := range request.EventIDs {
|
for _, eventID := range request.EventIDs {
|
||||||
stateEntry := stateEntries[eventID]
|
stateEntry, ok := stateEntries[eventID]
|
||||||
|
if !ok {
|
||||||
|
response.Memberships[eventID] = []*gomatrixserverlib.HeaderedEvent{}
|
||||||
|
continue
|
||||||
|
}
|
||||||
memberships, err := helpers.GetMembershipsAtState(ctx, r.DB, stateEntry, false)
|
memberships, err := helpers.GetMembershipsAtState(ctx, r.DB, stateEntry, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("unable to get memberships at state: %w", err)
|
return fmt.Errorf("unable to get memberships at state: %w", err)
|
||||||
|
|
|
@ -139,6 +139,9 @@ func (v *StateResolution) LoadMembershipAtEvent(
|
||||||
return nil, fmt.Errorf("LoadStateAtEvent.SnapshotNIDFromEventID failed for event %s : %w", eventID, err)
|
return nil, fmt.Errorf("LoadStateAtEvent.SnapshotNIDFromEventID failed for event %s : %w", eventID, err)
|
||||||
}
|
}
|
||||||
if snapshotNID == 0 {
|
if snapshotNID == 0 {
|
||||||
|
// If we don't know a state snapshot for this event then we can't calculate
|
||||||
|
// memberships at the time of the event, so skip over it. This means that
|
||||||
|
// it isn't guaranteed that the response map will contain every single event.
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
snapshotNIDMap[snapshotNID] = append(snapshotNIDMap[snapshotNID], eventID)
|
snapshotNIDMap[snapshotNID] = append(snapshotNIDMap[snapshotNID], eventID)
|
||||||
|
|
Loading…
Reference in a new issue