Skip to content
This repository was archived by the owner on Nov 25, 2024. It is now read-only.

Commit 3691423

Browse files
authored
Move GMSL client types to Dendrite (#3045)
GMSL is intended for Federation only. Sister PR to matrix-org/gomatrixserverlib#357
1 parent 985298c commit 3691423

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+692
-234
lines changed

appservice/appservice_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818

1919
"github.com/matrix-org/dendrite/appservice"
2020
"github.com/matrix-org/dendrite/appservice/api"
21+
"github.com/matrix-org/dendrite/appservice/consumers"
2122
"github.com/matrix-org/dendrite/internal/caching"
2223
"github.com/matrix-org/dendrite/internal/sqlutil"
2324
"github.com/matrix-org/dendrite/roomserver"
@@ -338,7 +339,7 @@ func TestRoomserverConsumerOneInvite(t *testing.T) {
338339
evChan := make(chan struct{})
339340
// create a dummy AS url, handling the events
340341
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
341-
var txn gomatrixserverlib.ApplicationServiceTransaction
342+
var txn consumers.ApplicationServiceTransaction
342343
err := json.NewDecoder(r.Body).Decode(&txn)
343344
if err != nil {
344345
t.Fatal(err)

appservice/consumers/roomserver.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,17 @@ import (
3232
"github.com/matrix-org/dendrite/setup/config"
3333
"github.com/matrix-org/dendrite/setup/jetstream"
3434
"github.com/matrix-org/dendrite/setup/process"
35+
"github.com/matrix-org/dendrite/syncapi/synctypes"
3536

3637
log "github.com/sirupsen/logrus"
3738
)
3839

40+
// ApplicationServiceTransaction is the transaction that is sent off to an
41+
// application service.
42+
type ApplicationServiceTransaction struct {
43+
Events []synctypes.ClientEvent `json:"events"`
44+
}
45+
3946
// OutputRoomEventConsumer consumes events that originated in the room server.
4047
type OutputRoomEventConsumer struct {
4148
ctx context.Context
@@ -171,8 +178,8 @@ func (s *OutputRoomEventConsumer) sendEvents(
171178
) error {
172179
// Create the transaction body.
173180
transaction, err := json.Marshal(
174-
gomatrixserverlib.ApplicationServiceTransaction{
175-
Events: gomatrixserverlib.HeaderedToClientEvents(events, gomatrixserverlib.FormatAll),
181+
ApplicationServiceTransaction{
182+
Events: synctypes.HeaderedToClientEvents(events, synctypes.FormatAll),
176183
},
177184
)
178185
if err != nil {

clientapi/routing/state.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,15 @@ import (
2222

2323
"github.com/matrix-org/dendrite/clientapi/jsonerror"
2424
"github.com/matrix-org/dendrite/roomserver/api"
25+
"github.com/matrix-org/dendrite/syncapi/synctypes"
2526
userapi "github.com/matrix-org/dendrite/userapi/api"
2627
"github.com/matrix-org/gomatrixserverlib"
2728
"github.com/matrix-org/util"
2829
log "github.com/sirupsen/logrus"
2930
)
3031

3132
type stateEventInStateResp struct {
32-
gomatrixserverlib.ClientEvent
33+
synctypes.ClientEvent
3334
PrevContent json.RawMessage `json:"prev_content,omitempty"`
3435
ReplacesState string `json:"replaces_state,omitempty"`
3536
}
@@ -122,7 +123,7 @@ func OnIncomingStateRequest(ctx context.Context, device *userapi.Device, rsAPI a
122123
"state_at_event": !wantLatestState,
123124
}).Info("Fetching all state")
124125

125-
stateEvents := []gomatrixserverlib.ClientEvent{}
126+
stateEvents := []synctypes.ClientEvent{}
126127
if wantLatestState {
127128
// If we are happy to use the latest state, either because the user is
128129
// still in the room, or because the room is world-readable, then just
@@ -131,7 +132,7 @@ func OnIncomingStateRequest(ctx context.Context, device *userapi.Device, rsAPI a
131132
for _, ev := range stateRes.StateEvents {
132133
stateEvents = append(
133134
stateEvents,
134-
gomatrixserverlib.HeaderedToClientEvent(ev, gomatrixserverlib.FormatAll),
135+
synctypes.HeaderedToClientEvent(ev, synctypes.FormatAll),
135136
)
136137
}
137138
} else {
@@ -150,7 +151,7 @@ func OnIncomingStateRequest(ctx context.Context, device *userapi.Device, rsAPI a
150151
for _, ev := range stateAfterRes.StateEvents {
151152
stateEvents = append(
152153
stateEvents,
153-
gomatrixserverlib.HeaderedToClientEvent(ev, gomatrixserverlib.FormatAll),
154+
synctypes.HeaderedToClientEvent(ev, synctypes.FormatAll),
154155
)
155156
}
156157
}
@@ -309,7 +310,7 @@ func OnIncomingStateTypeRequest(
309310
}
310311

311312
stateEvent := stateEventInStateResp{
312-
ClientEvent: gomatrixserverlib.HeaderedToClientEvent(event, gomatrixserverlib.FormatAll),
313+
ClientEvent: synctypes.HeaderedToClientEvent(event, synctypes.FormatAll),
313314
}
314315

315316
var res interface{}

roomserver/api/query.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/matrix-org/gomatrixserverlib"
2525

2626
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
27+
"github.com/matrix-org/dendrite/syncapi/synctypes"
2728
)
2829

2930
// QueryLatestEventsAndStateRequest is a request to QueryLatestEventsAndState
@@ -146,7 +147,7 @@ type QueryMembershipsForRoomRequest struct {
146147
// QueryMembershipsForRoomResponse is a response to QueryMembershipsForRoom
147148
type QueryMembershipsForRoomResponse struct {
148149
// The "m.room.member" events (of "join" membership) in the client format
149-
JoinEvents []gomatrixserverlib.ClientEvent `json:"join_events"`
150+
JoinEvents []synctypes.ClientEvent `json:"join_events"`
150151
// True if the user has been in room before and has either stayed in it or
151152
// left it.
152153
HasBeenInRoom bool `json:"has_been_in_room"`

roomserver/internal/query/query.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/sirupsen/logrus"
2727

2828
"github.com/matrix-org/dendrite/roomserver/storage/tables"
29+
"github.com/matrix-org/dendrite/syncapi/synctypes"
2930

3031
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
3132
"github.com/matrix-org/dendrite/internal/caching"
@@ -345,7 +346,7 @@ func (r *Queryer) QueryMembershipsForRoom(
345346
return fmt.Errorf("r.DB.Events: %w", err)
346347
}
347348
for _, event := range events {
348-
clientEvent := gomatrixserverlib.ToClientEvent(event.Event, gomatrixserverlib.FormatAll)
349+
clientEvent := synctypes.ToClientEvent(event.Event, synctypes.FormatAll)
349350
response.JoinEvents = append(response.JoinEvents, clientEvent)
350351
}
351352
return nil
@@ -365,7 +366,7 @@ func (r *Queryer) QueryMembershipsForRoom(
365366
}
366367

367368
response.HasBeenInRoom = true
368-
response.JoinEvents = []gomatrixserverlib.ClientEvent{}
369+
response.JoinEvents = []synctypes.ClientEvent{}
369370

370371
var events []types.Event
371372
var stateEntries []types.StateEntry
@@ -394,7 +395,7 @@ func (r *Queryer) QueryMembershipsForRoom(
394395
}
395396

396397
for _, event := range events {
397-
clientEvent := gomatrixserverlib.ToClientEvent(event.Event, gomatrixserverlib.FormatAll)
398+
clientEvent := synctypes.ToClientEvent(event.Event, synctypes.FormatAll)
398399
response.JoinEvents = append(response.JoinEvents, clientEvent)
399400
}
400401

setup/mscs/msc2836/msc2836.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
"github.com/matrix-org/dendrite/internal/sqlutil"
3535
roomserver "github.com/matrix-org/dendrite/roomserver/api"
3636
"github.com/matrix-org/dendrite/setup/config"
37+
"github.com/matrix-org/dendrite/syncapi/synctypes"
3738
userapi "github.com/matrix-org/dendrite/userapi/api"
3839
"github.com/matrix-org/gomatrixserverlib"
3940
"github.com/matrix-org/util"
@@ -78,9 +79,9 @@ func (r *EventRelationshipRequest) Defaults() {
7879
}
7980

8081
type EventRelationshipResponse struct {
81-
Events []gomatrixserverlib.ClientEvent `json:"events"`
82-
NextBatch string `json:"next_batch"`
83-
Limited bool `json:"limited"`
82+
Events []synctypes.ClientEvent `json:"events"`
83+
NextBatch string `json:"next_batch"`
84+
Limited bool `json:"limited"`
8485
}
8586

8687
type MSC2836EventRelationshipsResponse struct {
@@ -91,7 +92,7 @@ type MSC2836EventRelationshipsResponse struct {
9192

9293
func toClientResponse(res *MSC2836EventRelationshipsResponse) *EventRelationshipResponse {
9394
out := &EventRelationshipResponse{
94-
Events: gomatrixserverlib.ToClientEvents(res.ParsedEvents, gomatrixserverlib.FormatAll),
95+
Events: synctypes.ToClientEvents(res.ParsedEvents, synctypes.FormatAll),
9596
Limited: res.Limited,
9697
NextBatch: res.NextBatch,
9798
}

setup/mscs/msc2836/msc2836_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616

1717
"github.com/gorilla/mux"
1818
"github.com/matrix-org/dendrite/setup/process"
19+
"github.com/matrix-org/dendrite/syncapi/synctypes"
1920
"github.com/matrix-org/gomatrixserverlib"
2021

2122
"github.com/matrix-org/dendrite/internal/hooks"
@@ -462,7 +463,7 @@ func assertContains(t *testing.T, result *msc2836.EventRelationshipResponse, wan
462463
}
463464
}
464465

465-
func assertUnsignedChildren(t *testing.T, ev gomatrixserverlib.ClientEvent, relType string, wantCount int, childrenEventIDs []string) {
466+
func assertUnsignedChildren(t *testing.T, ev synctypes.ClientEvent, relType string, wantCount int, childrenEventIDs []string) {
466467
t.Helper()
467468
unsigned := struct {
468469
Children map[string]int `json:"children"`

syncapi/internal/keychange.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626

2727
roomserverAPI "github.com/matrix-org/dendrite/roomserver/api"
2828
"github.com/matrix-org/dendrite/syncapi/storage"
29+
"github.com/matrix-org/dendrite/syncapi/synctypes"
2930
"github.com/matrix-org/dendrite/syncapi/types"
3031
"github.com/matrix-org/dendrite/userapi/api"
3132
)
@@ -278,7 +279,7 @@ func leftRooms(res *types.Response) []string {
278279
return roomIDs
279280
}
280281

281-
func membershipEventPresent(events []gomatrixserverlib.ClientEvent, userID string) bool {
282+
func membershipEventPresent(events []synctypes.ClientEvent, userID string) bool {
282283
for _, ev := range events {
283284
// it's enough to know that we have our member event here, don't need to check membership content
284285
// as it's implied by being in the respective section of the sync response.

syncapi/internal/keychange_test.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"github.com/matrix-org/util"
1111

1212
"github.com/matrix-org/dendrite/roomserver/api"
13+
"github.com/matrix-org/dendrite/syncapi/synctypes"
1314
"github.com/matrix-org/dendrite/syncapi/types"
1415
userapi "github.com/matrix-org/dendrite/userapi/api"
1516
)
@@ -159,7 +160,7 @@ func assertCatchup(t *testing.T, hasNew bool, syncResponse *types.Response, want
159160

160161
func joinResponseWithRooms(syncResponse *types.Response, userID string, roomIDs []string) *types.Response {
161162
for _, roomID := range roomIDs {
162-
roomEvents := []gomatrixserverlib.ClientEvent{
163+
roomEvents := []synctypes.ClientEvent{
163164
{
164165
Type: "m.room.member",
165166
StateKey: &userID,
@@ -182,7 +183,7 @@ func joinResponseWithRooms(syncResponse *types.Response, userID string, roomIDs
182183

183184
func leaveResponseWithRooms(syncResponse *types.Response, userID string, roomIDs []string) *types.Response {
184185
for _, roomID := range roomIDs {
185-
roomEvents := []gomatrixserverlib.ClientEvent{
186+
roomEvents := []synctypes.ClientEvent{
186187
{
187188
Type: "m.room.member",
188189
StateKey: &userID,
@@ -299,7 +300,7 @@ func TestKeyChangeCatchupNoNewJoinsButMessages(t *testing.T) {
299300
roomID := "!TestKeyChangeCatchupNoNewJoinsButMessages:bar"
300301
syncResponse := types.NewResponse()
301302
empty := ""
302-
roomStateEvents := []gomatrixserverlib.ClientEvent{
303+
roomStateEvents := []synctypes.ClientEvent{
303304
{
304305
Type: "m.room.name",
305306
StateKey: &empty,
@@ -309,7 +310,7 @@ func TestKeyChangeCatchupNoNewJoinsButMessages(t *testing.T) {
309310
Content: []byte(`{"name":"The Room Name"}`),
310311
},
311312
}
312-
roomTimelineEvents := []gomatrixserverlib.ClientEvent{
313+
roomTimelineEvents := []synctypes.ClientEvent{
313314
{
314315
Type: "m.room.message",
315316
EventID: "$something1:here",
@@ -402,7 +403,7 @@ func TestKeyChangeCatchupChangeAndLeftSameRoom(t *testing.T) {
402403
newShareUser2 := "@bobby:localhost"
403404
roomID := "!join:bar"
404405
syncResponse := types.NewResponse()
405-
roomEvents := []gomatrixserverlib.ClientEvent{
406+
roomEvents := []synctypes.ClientEvent{
406407
{
407408
Type: "m.room.member",
408409
StateKey: &syncingUser,

syncapi/routing/context.go

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import (
2929
roomserver "github.com/matrix-org/dendrite/roomserver/api"
3030
"github.com/matrix-org/dendrite/syncapi/internal"
3131
"github.com/matrix-org/dendrite/syncapi/storage"
32+
"github.com/matrix-org/dendrite/syncapi/synctypes"
3233
"github.com/matrix-org/dendrite/syncapi/types"
3334
userapi "github.com/matrix-org/dendrite/userapi/api"
3435
"github.com/matrix-org/gomatrixserverlib"
@@ -37,12 +38,12 @@ import (
3738
)
3839

3940
type ContextRespsonse struct {
40-
End string `json:"end"`
41-
Event *gomatrixserverlib.ClientEvent `json:"event,omitempty"`
42-
EventsAfter []gomatrixserverlib.ClientEvent `json:"events_after,omitempty"`
43-
EventsBefore []gomatrixserverlib.ClientEvent `json:"events_before,omitempty"`
44-
Start string `json:"start"`
45-
State []gomatrixserverlib.ClientEvent `json:"state,omitempty"`
41+
End string `json:"end"`
42+
Event *synctypes.ClientEvent `json:"event,omitempty"`
43+
EventsAfter []synctypes.ClientEvent `json:"events_after,omitempty"`
44+
EventsBefore []synctypes.ClientEvent `json:"events_before,omitempty"`
45+
Start string `json:"start"`
46+
State []synctypes.ClientEvent `json:"state,omitempty"`
4647
}
4748

4849
func Context(
@@ -94,7 +95,7 @@ func Context(
9495
}
9596
}
9697

97-
stateFilter := gomatrixserverlib.StateFilter{
98+
stateFilter := synctypes.StateFilter{
9899
NotSenders: filter.NotSenders,
99100
NotTypes: filter.NotTypes,
100101
Senders: filter.Senders,
@@ -167,27 +168,27 @@ func Context(
167168
return jsonerror.InternalServerError()
168169
}
169170

170-
eventsBeforeClient := gomatrixserverlib.HeaderedToClientEvents(eventsBeforeFiltered, gomatrixserverlib.FormatAll)
171-
eventsAfterClient := gomatrixserverlib.HeaderedToClientEvents(eventsAfterFiltered, gomatrixserverlib.FormatAll)
171+
eventsBeforeClient := synctypes.HeaderedToClientEvents(eventsBeforeFiltered, synctypes.FormatAll)
172+
eventsAfterClient := synctypes.HeaderedToClientEvents(eventsAfterFiltered, synctypes.FormatAll)
172173

173174
newState := state
174175
if filter.LazyLoadMembers {
175176
allEvents := append(eventsBeforeFiltered, eventsAfterFiltered...)
176177
allEvents = append(allEvents, &requestedEvent)
177-
evs := gomatrixserverlib.HeaderedToClientEvents(allEvents, gomatrixserverlib.FormatAll)
178+
evs := synctypes.HeaderedToClientEvents(allEvents, synctypes.FormatAll)
178179
newState, err = applyLazyLoadMembers(ctx, device, snapshot, roomID, evs, lazyLoadCache)
179180
if err != nil {
180181
logrus.WithError(err).Error("unable to load membership events")
181182
return jsonerror.InternalServerError()
182183
}
183184
}
184185

185-
ev := gomatrixserverlib.HeaderedToClientEvent(&requestedEvent, gomatrixserverlib.FormatAll)
186+
ev := synctypes.HeaderedToClientEvent(&requestedEvent, synctypes.FormatAll)
186187
response := ContextRespsonse{
187188
Event: &ev,
188189
EventsAfter: eventsAfterClient,
189190
EventsBefore: eventsBeforeClient,
190-
State: gomatrixserverlib.HeaderedToClientEvents(newState, gomatrixserverlib.FormatAll),
191+
State: synctypes.HeaderedToClientEvents(newState, synctypes.FormatAll),
191192
}
192193

193194
if len(response.State) > filter.Limit {
@@ -261,7 +262,7 @@ func applyLazyLoadMembers(
261262
device *userapi.Device,
262263
snapshot storage.DatabaseTransaction,
263264
roomID string,
264-
events []gomatrixserverlib.ClientEvent,
265+
events []synctypes.ClientEvent,
265266
lazyLoadCache caching.LazyLoadCache,
266267
) ([]*gomatrixserverlib.HeaderedEvent, error) {
267268
eventSenders := make(map[string]struct{})
@@ -280,7 +281,7 @@ func applyLazyLoadMembers(
280281
}
281282

282283
// Query missing membership events
283-
filter := gomatrixserverlib.DefaultStateFilter()
284+
filter := synctypes.DefaultStateFilter()
284285
filter.Senders = &wantUsers
285286
filter.Types = &[]string{gomatrixserverlib.MRoomMember}
286287
memberships, err := snapshot.GetStateEventsForRoom(ctx, roomID, &filter)
@@ -296,9 +297,9 @@ func applyLazyLoadMembers(
296297
return memberships, nil
297298
}
298299

299-
func parseRoomEventFilter(req *http.Request) (*gomatrixserverlib.RoomEventFilter, error) {
300+
func parseRoomEventFilter(req *http.Request) (*synctypes.RoomEventFilter, error) {
300301
// Default room filter
301-
filter := &gomatrixserverlib.RoomEventFilter{Limit: 10}
302+
filter := &synctypes.RoomEventFilter{Limit: 10}
302303

303304
l := req.URL.Query().Get("limit")
304305
f := req.URL.Query().Get("filter")

0 commit comments

Comments
 (0)