mirror of
https://github.com/hoernschen/dendrite.git
synced 2025-08-02 14:12:47 +00:00
Move GMSL client types to Dendrite (#3045)
GMSL is intended for Federation only. Sister PR to https://github.com/matrix-org/gomatrixserverlib/pull/357
This commit is contained in:
parent
985298cfc4
commit
3691423626
58 changed files with 692 additions and 234 deletions
|
@ -31,6 +31,7 @@ import (
|
|||
"github.com/matrix-org/dendrite/internal/sqlutil"
|
||||
"github.com/matrix-org/dendrite/roomserver/api"
|
||||
"github.com/matrix-org/dendrite/syncapi/storage/tables"
|
||||
"github.com/matrix-org/dendrite/syncapi/synctypes"
|
||||
"github.com/matrix-org/dendrite/syncapi/types"
|
||||
)
|
||||
|
||||
|
@ -323,13 +324,13 @@ func (d *Database) updateRoomState(
|
|||
}
|
||||
|
||||
func (d *Database) GetFilter(
|
||||
ctx context.Context, target *gomatrixserverlib.Filter, localpart string, filterID string,
|
||||
ctx context.Context, target *synctypes.Filter, localpart string, filterID string,
|
||||
) error {
|
||||
return d.Filter.SelectFilter(ctx, nil, target, localpart, filterID)
|
||||
}
|
||||
|
||||
func (d *Database) PutFilter(
|
||||
ctx context.Context, localpart string, filter *gomatrixserverlib.Filter,
|
||||
ctx context.Context, localpart string, filter *synctypes.Filter,
|
||||
) (string, error) {
|
||||
var filterID string
|
||||
var err error
|
||||
|
@ -523,10 +524,10 @@ func (d *Database) SelectContextEvent(ctx context.Context, roomID, eventID strin
|
|||
return d.OutputEvents.SelectContextEvent(ctx, nil, roomID, eventID)
|
||||
}
|
||||
|
||||
func (d *Database) SelectContextBeforeEvent(ctx context.Context, id int, roomID string, filter *gomatrixserverlib.RoomEventFilter) ([]*gomatrixserverlib.HeaderedEvent, error) {
|
||||
func (d *Database) SelectContextBeforeEvent(ctx context.Context, id int, roomID string, filter *synctypes.RoomEventFilter) ([]*gomatrixserverlib.HeaderedEvent, error) {
|
||||
return d.OutputEvents.SelectContextBeforeEvent(ctx, nil, id, roomID, filter)
|
||||
}
|
||||
func (d *Database) SelectContextAfterEvent(ctx context.Context, id int, roomID string, filter *gomatrixserverlib.RoomEventFilter) (int, []*gomatrixserverlib.HeaderedEvent, error) {
|
||||
func (d *Database) SelectContextAfterEvent(ctx context.Context, id int, roomID string, filter *synctypes.RoomEventFilter) (int, []*gomatrixserverlib.HeaderedEvent, error) {
|
||||
return d.OutputEvents.SelectContextAfterEvent(ctx, nil, id, roomID, filter)
|
||||
}
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ import (
|
|||
"github.com/tidwall/gjson"
|
||||
|
||||
"github.com/matrix-org/dendrite/internal/eventutil"
|
||||
"github.com/matrix-org/dendrite/syncapi/synctypes"
|
||||
"github.com/matrix-org/dendrite/syncapi/types"
|
||||
userapi "github.com/matrix-org/dendrite/userapi/api"
|
||||
)
|
||||
|
@ -82,7 +83,7 @@ func (d *DatabaseTransaction) MaxStreamPositionForNotificationData(ctx context.C
|
|||
return types.StreamPosition(id), nil
|
||||
}
|
||||
|
||||
func (d *DatabaseTransaction) CurrentState(ctx context.Context, roomID string, stateFilterPart *gomatrixserverlib.StateFilter, excludeEventIDs []string) ([]*gomatrixserverlib.HeaderedEvent, error) {
|
||||
func (d *DatabaseTransaction) CurrentState(ctx context.Context, roomID string, stateFilterPart *synctypes.StateFilter, excludeEventIDs []string) ([]*gomatrixserverlib.HeaderedEvent, error) {
|
||||
return d.CurrentRoomState.SelectCurrentState(ctx, d.txn, roomID, stateFilterPart, excludeEventIDs)
|
||||
}
|
||||
|
||||
|
@ -109,7 +110,7 @@ func (d *DatabaseTransaction) GetRoomSummary(ctx context.Context, roomID, userID
|
|||
summary.JoinedMemberCount = &joinCount
|
||||
|
||||
// Get the room name and canonical alias, if any
|
||||
filter := gomatrixserverlib.DefaultStateFilter()
|
||||
filter := synctypes.DefaultStateFilter()
|
||||
filterTypes := []string{gomatrixserverlib.MRoomName, gomatrixserverlib.MRoomCanonicalAlias}
|
||||
filterRooms := []string{roomID}
|
||||
|
||||
|
@ -151,7 +152,7 @@ func (d *DatabaseTransaction) GetRoomSummary(ctx context.Context, roomID, userID
|
|||
return summary, nil
|
||||
}
|
||||
|
||||
func (d *DatabaseTransaction) RecentEvents(ctx context.Context, roomIDs []string, r types.Range, eventFilter *gomatrixserverlib.RoomEventFilter, chronologicalOrder bool, onlySyncEvents bool) (map[string]types.RecentEvents, error) {
|
||||
func (d *DatabaseTransaction) RecentEvents(ctx context.Context, roomIDs []string, r types.Range, eventFilter *synctypes.RoomEventFilter, chronologicalOrder bool, onlySyncEvents bool) (map[string]types.RecentEvents, error) {
|
||||
return d.OutputEvents.SelectRecentEvents(ctx, d.txn, roomIDs, r, eventFilter, chronologicalOrder, onlySyncEvents)
|
||||
}
|
||||
|
||||
|
@ -210,7 +211,7 @@ func (d *DatabaseTransaction) GetStateEvent(
|
|||
}
|
||||
|
||||
func (d *DatabaseTransaction) GetStateEventsForRoom(
|
||||
ctx context.Context, roomID string, stateFilter *gomatrixserverlib.StateFilter,
|
||||
ctx context.Context, roomID string, stateFilter *synctypes.StateFilter,
|
||||
) (stateEvents []*gomatrixserverlib.HeaderedEvent, err error) {
|
||||
stateEvents, err = d.CurrentRoomState.SelectCurrentState(ctx, d.txn, roomID, stateFilter, nil)
|
||||
return
|
||||
|
@ -223,7 +224,7 @@ func (d *DatabaseTransaction) GetStateEventsForRoom(
|
|||
// If there was an issue with the retrieval, returns an error
|
||||
func (d *DatabaseTransaction) GetAccountDataInRange(
|
||||
ctx context.Context, userID string, r types.Range,
|
||||
accountDataFilterPart *gomatrixserverlib.EventFilter,
|
||||
accountDataFilterPart *synctypes.EventFilter,
|
||||
) (map[string][]string, types.StreamPosition, error) {
|
||||
return d.AccountData.SelectAccountDataInRange(ctx, d.txn, userID, r, accountDataFilterPart)
|
||||
}
|
||||
|
@ -232,7 +233,7 @@ func (d *DatabaseTransaction) GetEventsInTopologicalRange(
|
|||
ctx context.Context,
|
||||
from, to *types.TopologyToken,
|
||||
roomID string,
|
||||
filter *gomatrixserverlib.RoomEventFilter,
|
||||
filter *synctypes.RoomEventFilter,
|
||||
backwardOrdering bool,
|
||||
) (events []types.StreamEvent, err error) {
|
||||
var minDepth, maxDepth, maxStreamPosForMaxDepth types.StreamPosition
|
||||
|
@ -323,7 +324,7 @@ func (d *DatabaseTransaction) GetBackwardTopologyPos(
|
|||
func (d *DatabaseTransaction) GetStateDeltas(
|
||||
ctx context.Context, device *userapi.Device,
|
||||
r types.Range, userID string,
|
||||
stateFilter *gomatrixserverlib.StateFilter,
|
||||
stateFilter *synctypes.StateFilter,
|
||||
) (deltas []types.StateDelta, joinedRoomsIDs []string, err error) {
|
||||
// Implement membership change algorithm: https://github.com/matrix-org/synapse/blob/v0.19.3/synapse/handlers/sync.py#L821
|
||||
// - Get membership list changes for this user in this sync response
|
||||
|
@ -488,7 +489,7 @@ func (d *DatabaseTransaction) GetStateDeltas(
|
|||
func (d *DatabaseTransaction) GetStateDeltasForFullStateSync(
|
||||
ctx context.Context, device *userapi.Device,
|
||||
r types.Range, userID string,
|
||||
stateFilter *gomatrixserverlib.StateFilter,
|
||||
stateFilter *synctypes.StateFilter,
|
||||
) ([]types.StateDelta, []string, error) {
|
||||
// Look up all memberships for the user. We only care about rooms that a
|
||||
// user has ever interacted with — joined to, kicked/banned from, left.
|
||||
|
@ -597,7 +598,7 @@ func (d *DatabaseTransaction) GetStateDeltasForFullStateSync(
|
|||
|
||||
func (d *DatabaseTransaction) currentStateStreamEventsForRoom(
|
||||
ctx context.Context, roomID string,
|
||||
stateFilter *gomatrixserverlib.StateFilter,
|
||||
stateFilter *synctypes.StateFilter,
|
||||
) ([]types.StreamEvent, error) {
|
||||
allState, err := d.CurrentRoomState.SelectCurrentState(ctx, d.txn, roomID, stateFilter, nil)
|
||||
if err != nil {
|
||||
|
@ -647,7 +648,7 @@ func (d *DatabaseTransaction) GetPresences(ctx context.Context, userIDs []string
|
|||
return d.Presence.GetPresenceForUsers(ctx, d.txn, userIDs)
|
||||
}
|
||||
|
||||
func (d *DatabaseTransaction) PresenceAfter(ctx context.Context, after types.StreamPosition, filter gomatrixserverlib.EventFilter) (map[string]*types.PresenceInternal, error) {
|
||||
func (d *DatabaseTransaction) PresenceAfter(ctx context.Context, after types.StreamPosition, filter synctypes.EventFilter) (map[string]*types.PresenceInternal, error) {
|
||||
return d.Presence.GetPresenceAfter(ctx, d.txn, after, filter)
|
||||
}
|
||||
|
||||
|
@ -707,7 +708,7 @@ func (d *DatabaseTransaction) MaxStreamPositionForRelations(ctx context.Context)
|
|||
return types.StreamPosition(id), err
|
||||
}
|
||||
|
||||
func isStatefilterEmpty(filter *gomatrixserverlib.StateFilter) bool {
|
||||
func isStatefilterEmpty(filter *synctypes.StateFilter) bool {
|
||||
if filter == nil {
|
||||
return true
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ package shared
|
|||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/matrix-org/gomatrixserverlib"
|
||||
"github.com/matrix-org/dendrite/syncapi/synctypes"
|
||||
)
|
||||
|
||||
func Test_isStatefilterEmpty(t *testing.T) {
|
||||
|
@ -12,7 +12,7 @@ func Test_isStatefilterEmpty(t *testing.T) {
|
|||
|
||||
tests := []struct {
|
||||
name string
|
||||
filter *gomatrixserverlib.StateFilter
|
||||
filter *synctypes.StateFilter
|
||||
want bool
|
||||
}{
|
||||
{
|
||||
|
@ -22,42 +22,42 @@ func Test_isStatefilterEmpty(t *testing.T) {
|
|||
},
|
||||
{
|
||||
name: "Empty filter is empty",
|
||||
filter: &gomatrixserverlib.StateFilter{},
|
||||
filter: &synctypes.StateFilter{},
|
||||
want: true,
|
||||
},
|
||||
{
|
||||
name: "NotTypes is set",
|
||||
filter: &gomatrixserverlib.StateFilter{
|
||||
filter: &synctypes.StateFilter{
|
||||
NotTypes: &filterSet,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Types is set",
|
||||
filter: &gomatrixserverlib.StateFilter{
|
||||
filter: &synctypes.StateFilter{
|
||||
Types: &filterSet,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Senders is set",
|
||||
filter: &gomatrixserverlib.StateFilter{
|
||||
filter: &synctypes.StateFilter{
|
||||
Senders: &filterSet,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "NotSenders is set",
|
||||
filter: &gomatrixserverlib.StateFilter{
|
||||
filter: &synctypes.StateFilter{
|
||||
NotSenders: &filterSet,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "NotRooms is set",
|
||||
filter: &gomatrixserverlib.StateFilter{
|
||||
filter: &synctypes.StateFilter{
|
||||
NotRooms: &filterSet,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ContainsURL is set",
|
||||
filter: &gomatrixserverlib.StateFilter{
|
||||
filter: &synctypes.StateFilter{
|
||||
ContainsURL: &boolValue,
|
||||
},
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue