dendrite/syncapi/types/provider.go

48 lines
940 B
Go

package types
import (
"context"
"time"
"github.com/sirupsen/logrus"
"github.com/matrix-org/dendrite/syncapi/synctypes"
userapi "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib/spec"
)
type SyncRequest struct {
Context context.Context
Log *logrus.Entry
Device *userapi.Device
Response *Response
Filter synctypes.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 spec.Join:
return true
case spec.Invite:
return true
case spec.Peek:
return true
default:
return false
}
}