dendrite/syncapi/types/provider.go
Till e79bfd8fd5
Get state deltas without filters (#2810)
This makes the following changes:
- get state deltas without the user supplied filter, so we can actually
"calculate" state transitions
- closes `stmt` when using SQLite
- Adds presence for users who newly joined a room, even if the syncing
user already knows about the presence status (should fix
https://github.com/matrix-org/complement/pull/516)
2022-10-19 14:05:39 +02:00

46 lines
930 B
Go

package types
import (
"context"
"time"
"github.com/matrix-org/gomatrixserverlib"
"github.com/sirupsen/logrus"
userapi "github.com/matrix-org/dendrite/userapi/api"
)
type SyncRequest struct {
Context context.Context
Log *logrus.Entry
Device *userapi.Device
Response *Response
Filter gomatrixserverlib.Filter
Since StreamingToken
Timeout time.Duration
WantFullState bool
// Updated by the PDU stream.
Rooms map[string]string
// Updated by the PDU stream.
MembershipChanges map[string]struct{}
// Updated by the PDU stream.
IgnoredUsers IgnoredUsers
}
func (r *SyncRequest) IsRoomPresent(roomID string) bool {
membership, ok := r.Rooms[roomID]
if !ok {
return false
}
switch membership {
case gomatrixserverlib.Join:
return true
case gomatrixserverlib.Invite:
return true
case gomatrixserverlib.Peek:
return true
default:
return false
}
}