aboutsummaryrefslogtreecommitdiff
path: root/roomserver/api
diff options
context:
space:
mode:
authorkegsay <kegan@matrix.org>2023-04-19 15:50:33 +0100
committerGitHub <noreply@github.com>2023-04-19 15:50:33 +0100
commit72285b2659a31ebd52c91799c17105d81d996f40 (patch)
tree1855395f5efdc3ea6051dd502882bf62aaa57e7c /roomserver/api
parent9fa39263c0a4a8d349c8715f6ba30cae30b1b73a (diff)
refactor: update GMSL (#3058)
Sister PR to https://github.com/matrix-org/gomatrixserverlib/pull/364 Read this commit by commit to avoid going insane.
Diffstat (limited to 'roomserver/api')
-rw-r--r--roomserver/api/api.go3
-rw-r--r--roomserver/api/input.go9
-rw-r--r--roomserver/api/output.go3
-rw-r--r--roomserver/api/perform.go54
-rw-r--r--roomserver/api/query.go11
-rw-r--r--roomserver/api/wrapper.go25
6 files changed, 56 insertions, 49 deletions
diff --git a/roomserver/api/api.go b/roomserver/api/api.go
index dda5bb5a..4ce40e3e 100644
--- a/roomserver/api/api.go
+++ b/roomserver/api/api.go
@@ -4,6 +4,7 @@ import (
"context"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
asAPI "github.com/matrix-org/dendrite/appservice/api"
fsAPI "github.com/matrix-org/dendrite/federationapi/api"
@@ -197,7 +198,7 @@ type FederationRoomserverAPI interface {
// Query missing events for a room from roomserver
QueryMissingEvents(ctx context.Context, req *QueryMissingEventsRequest, res *QueryMissingEventsResponse) error
// Query whether a server is allowed to see an event
- QueryServerAllowedToSeeEvent(ctx context.Context, serverName gomatrixserverlib.ServerName, eventID string) (allowed bool, err error)
+ QueryServerAllowedToSeeEvent(ctx context.Context, serverName spec.ServerName, eventID string) (allowed bool, err error)
QueryRoomsForUser(ctx context.Context, req *QueryRoomsForUserRequest, res *QueryRoomsForUserResponse) error
QueryRestrictedJoinAllowed(ctx context.Context, req *QueryRestrictedJoinAllowedRequest, res *QueryRestrictedJoinAllowedResponse) error
PerformInboundPeek(ctx context.Context, req *PerformInboundPeekRequest, res *PerformInboundPeekResponse) error
diff --git a/roomserver/api/input.go b/roomserver/api/input.go
index 88d52327..b52317cd 100644
--- a/roomserver/api/input.go
+++ b/roomserver/api/input.go
@@ -19,6 +19,7 @@ import (
"fmt"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
type Kind int
@@ -68,7 +69,7 @@ type InputRoomEvent struct {
// The event JSON for the event to add.
Event *gomatrixserverlib.HeaderedEvent `json:"event"`
// Which server told us about this event.
- Origin gomatrixserverlib.ServerName `json:"origin"`
+ Origin spec.ServerName `json:"origin"`
// Whether the state is supplied as a list of event IDs or whether it
// should be derived from the state at the previous events.
HasState bool `json:"has_state"`
@@ -94,9 +95,9 @@ type TransactionID struct {
// InputRoomEventsRequest is a request to InputRoomEvents
type InputRoomEventsRequest struct {
- InputRoomEvents []InputRoomEvent `json:"input_room_events"`
- Asynchronous bool `json:"async"`
- VirtualHost gomatrixserverlib.ServerName `json:"virtual_host"`
+ InputRoomEvents []InputRoomEvent `json:"input_room_events"`
+ Asynchronous bool `json:"async"`
+ VirtualHost spec.ServerName `json:"virtual_host"`
}
// InputRoomEventsResponse is a response to InputRoomEvents
diff --git a/roomserver/api/output.go b/roomserver/api/output.go
index 0c0f52c4..73788747 100644
--- a/roomserver/api/output.go
+++ b/roomserver/api/output.go
@@ -16,6 +16,7 @@ package api
import (
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// An OutputType is a type of roomserver output.
@@ -250,7 +251,7 @@ type OutputNewInboundPeek struct {
// a race between tracking the state returned by /peek and emitting subsequent
// peeked events)
LatestEventID string
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
// how often we told the peeking server to renew the peek
RenewalInterval int64
}
diff --git a/roomserver/api/perform.go b/roomserver/api/perform.go
index 83cb0460..e125a300 100644
--- a/roomserver/api/perform.go
+++ b/roomserver/api/perform.go
@@ -6,6 +6,8 @@ import (
"net/http"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
@@ -76,18 +78,18 @@ const (
)
type PerformJoinRequest struct {
- RoomIDOrAlias string `json:"room_id_or_alias"`
- UserID string `json:"user_id"`
- IsGuest bool `json:"is_guest"`
- Content map[string]interface{} `json:"content"`
- ServerNames []gomatrixserverlib.ServerName `json:"server_names"`
- Unsigned map[string]interface{} `json:"unsigned"`
+ RoomIDOrAlias string `json:"room_id_or_alias"`
+ UserID string `json:"user_id"`
+ IsGuest bool `json:"is_guest"`
+ Content map[string]interface{} `json:"content"`
+ ServerNames []spec.ServerName `json:"server_names"`
+ Unsigned map[string]interface{} `json:"unsigned"`
}
type PerformJoinResponse struct {
// The room ID, populated on success.
RoomID string `json:"room_id"`
- JoinedVia gomatrixserverlib.ServerName
+ JoinedVia spec.ServerName
// If non-nil, the join request failed. Contains more information why it failed.
Error *PerformError
}
@@ -103,11 +105,11 @@ type PerformLeaveResponse struct {
}
type PerformInviteRequest struct {
- RoomVersion gomatrixserverlib.RoomVersion `json:"room_version"`
- Event *gomatrixserverlib.HeaderedEvent `json:"event"`
- InviteRoomState []gomatrixserverlib.InviteV2StrippedState `json:"invite_room_state"`
- SendAsServer string `json:"send_as_server"`
- TransactionID *TransactionID `json:"transaction_id"`
+ RoomVersion gomatrixserverlib.RoomVersion `json:"room_version"`
+ Event *gomatrixserverlib.HeaderedEvent `json:"event"`
+ InviteRoomState []fclient.InviteV2StrippedState `json:"invite_room_state"`
+ SendAsServer string `json:"send_as_server"`
+ TransactionID *TransactionID `json:"transaction_id"`
}
type PerformInviteResponse struct {
@@ -115,10 +117,10 @@ type PerformInviteResponse struct {
}
type PerformPeekRequest struct {
- RoomIDOrAlias string `json:"room_id_or_alias"`
- UserID string `json:"user_id"`
- DeviceID string `json:"device_id"`
- ServerNames []gomatrixserverlib.ServerName `json:"server_names"`
+ RoomIDOrAlias string `json:"room_id_or_alias"`
+ UserID string `json:"user_id"`
+ DeviceID string `json:"device_id"`
+ ServerNames []spec.ServerName `json:"server_names"`
}
type PerformPeekResponse struct {
@@ -148,9 +150,9 @@ type PerformBackfillRequest struct {
// The maximum number of events to retrieve.
Limit int `json:"limit"`
// The server interested in the events.
- ServerName gomatrixserverlib.ServerName `json:"server_name"`
+ ServerName spec.ServerName `json:"server_name"`
// Which virtual host are we doing this for?
- VirtualHost gomatrixserverlib.ServerName `json:"virtual_host"`
+ VirtualHost spec.ServerName `json:"virtual_host"`
}
// PrevEventIDs returns the prev_event IDs of all backwards extremities, de-duplicated in a lexicographically sorted order.
@@ -183,11 +185,11 @@ type PerformPublishResponse struct {
}
type PerformInboundPeekRequest struct {
- UserID string `json:"user_id"`
- RoomID string `json:"room_id"`
- PeekID string `json:"peek_id"`
- ServerName gomatrixserverlib.ServerName `json:"server_name"`
- RenewalInterval int64 `json:"renewal_interval"`
+ UserID string `json:"user_id"`
+ RoomID string `json:"room_id"`
+ PeekID string `json:"peek_id"`
+ ServerName spec.ServerName `json:"server_name"`
+ RenewalInterval int64 `json:"renewal_interval"`
}
type PerformInboundPeekResponse struct {
@@ -250,9 +252,9 @@ type PerformAdminPurgeRoomResponse struct {
}
type PerformAdminDownloadStateRequest struct {
- RoomID string `json:"room_id"`
- UserID string `json:"user_id"`
- ServerName gomatrixserverlib.ServerName `json:"server_name"`
+ RoomID string `json:"room_id"`
+ UserID string `json:"user_id"`
+ ServerName spec.ServerName `json:"server_name"`
}
type PerformAdminDownloadStateResponse struct {
diff --git a/roomserver/api/query.go b/roomserver/api/query.go
index 612c3315..56915b1e 100644
--- a/roomserver/api/query.go
+++ b/roomserver/api/query.go
@@ -22,6 +22,7 @@ import (
"strings"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
"github.com/matrix-org/dendrite/syncapi/synctypes"
@@ -159,7 +160,7 @@ type QueryMembershipsForRoomResponse struct {
type QueryServerJoinedToRoomRequest struct {
// Server name of the server to find. If not specified, we will
// default to checking if the local server is joined.
- ServerName gomatrixserverlib.ServerName `json:"server_name"`
+ ServerName spec.ServerName `json:"server_name"`
// ID of the room to see if we are still joined to
RoomID string `json:"room_id"`
}
@@ -177,7 +178,7 @@ type QueryServerAllowedToSeeEventRequest struct {
// The event ID to look up invites in.
EventID string `json:"event_id"`
// The server interested in the event
- ServerName gomatrixserverlib.ServerName `json:"server_name"`
+ ServerName spec.ServerName `json:"server_name"`
}
// QueryServerAllowedToSeeEventResponse is a response to QueryServerAllowedToSeeEvent
@@ -195,7 +196,7 @@ type QueryMissingEventsRequest struct {
// Limit the number of events this query returns.
Limit int `json:"limit"`
// The server interested in the event
- ServerName gomatrixserverlib.ServerName `json:"server_name"`
+ ServerName spec.ServerName `json:"server_name"`
}
// QueryMissingEventsResponse is a response to QueryMissingEvents
@@ -340,8 +341,8 @@ type QueryKnownUsersResponse struct {
}
type QueryServerBannedFromRoomRequest struct {
- ServerName gomatrixserverlib.ServerName `json:"server_name"`
- RoomID string `json:"room_id"`
+ ServerName spec.ServerName `json:"server_name"`
+ RoomID string `json:"room_id"`
}
type QueryServerBannedFromRoomResponse struct {
diff --git a/roomserver/api/wrapper.go b/roomserver/api/wrapper.go
index 831ffe25..ff4445bf 100644
--- a/roomserver/api/wrapper.go
+++ b/roomserver/api/wrapper.go
@@ -19,6 +19,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/sirupsen/logrus"
)
@@ -27,8 +28,8 @@ import (
func SendEvents(
ctx context.Context, rsAPI InputRoomEventsAPI,
kind Kind, events []*gomatrixserverlib.HeaderedEvent,
- virtualHost, origin gomatrixserverlib.ServerName,
- sendAsServer gomatrixserverlib.ServerName, txnID *TransactionID,
+ virtualHost, origin spec.ServerName,
+ sendAsServer spec.ServerName, txnID *TransactionID,
async bool,
) error {
ires := make([]InputRoomEvent, len(events))
@@ -49,9 +50,9 @@ func SendEvents(
// marked as `true` in haveEventIDs.
func SendEventWithState(
ctx context.Context, rsAPI InputRoomEventsAPI,
- virtualHost gomatrixserverlib.ServerName, kind Kind,
+ virtualHost spec.ServerName, kind Kind,
state gomatrixserverlib.StateResponse, event *gomatrixserverlib.HeaderedEvent,
- origin gomatrixserverlib.ServerName, haveEventIDs map[string]bool, async bool,
+ origin spec.ServerName, haveEventIDs map[string]bool, async bool,
) error {
outliers := gomatrixserverlib.LineariseStateResponse(event.RoomVersion, state)
ires := make([]InputRoomEvent, 0, len(outliers))
@@ -93,7 +94,7 @@ func SendEventWithState(
// SendInputRoomEvents to the roomserver.
func SendInputRoomEvents(
ctx context.Context, rsAPI InputRoomEventsAPI,
- virtualHost gomatrixserverlib.ServerName,
+ virtualHost spec.ServerName,
ires []InputRoomEvent, async bool,
) error {
request := InputRoomEventsRequest{
@@ -144,7 +145,7 @@ func GetStateEvent(ctx context.Context, rsAPI QueryEventsAPI, roomID string, tup
}
// IsServerBannedFromRoom returns whether the server is banned from a room by server ACLs.
-func IsServerBannedFromRoom(ctx context.Context, rsAPI FederationRoomserverAPI, roomID string, serverName gomatrixserverlib.ServerName) bool {
+func IsServerBannedFromRoom(ctx context.Context, rsAPI FederationRoomserverAPI, roomID string, serverName spec.ServerName) bool {
req := &QueryServerBannedFromRoomRequest{
ServerName: serverName,
RoomID: roomID,
@@ -163,11 +164,11 @@ func IsServerBannedFromRoom(ctx context.Context, rsAPI FederationRoomserverAPI,
func PopulatePublicRooms(ctx context.Context, roomIDs []string, rsAPI QueryBulkStateContentAPI) ([]fclient.PublicRoom, error) {
avatarTuple := gomatrixserverlib.StateKeyTuple{EventType: "m.room.avatar", StateKey: ""}
nameTuple := gomatrixserverlib.StateKeyTuple{EventType: "m.room.name", StateKey: ""}
- canonicalTuple := gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomCanonicalAlias, StateKey: ""}
+ canonicalTuple := gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomCanonicalAlias, StateKey: ""}
topicTuple := gomatrixserverlib.StateKeyTuple{EventType: "m.room.topic", StateKey: ""}
guestTuple := gomatrixserverlib.StateKeyTuple{EventType: "m.room.guest_access", StateKey: ""}
- visibilityTuple := gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomHistoryVisibility, StateKey: ""}
- joinRuleTuple := gomatrixserverlib.StateKeyTuple{EventType: gomatrixserverlib.MRoomJoinRules, StateKey: ""}
+ visibilityTuple := gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomHistoryVisibility, StateKey: ""}
+ joinRuleTuple := gomatrixserverlib.StateKeyTuple{EventType: spec.MRoomJoinRules, StateKey: ""}
var stateRes QueryBulkStateContentResponse
err := rsAPI.QueryBulkStateContent(ctx, &QueryBulkStateContentRequest{
@@ -175,7 +176,7 @@ func PopulatePublicRooms(ctx context.Context, roomIDs []string, rsAPI QueryBulkS
AllowWildcards: true,
StateTuples: []gomatrixserverlib.StateKeyTuple{
nameTuple, canonicalTuple, topicTuple, guestTuple, visibilityTuple, joinRuleTuple, avatarTuple,
- {EventType: gomatrixserverlib.MRoomMember, StateKey: "*"},
+ {EventType: spec.MRoomMember, StateKey: "*"},
},
}, &stateRes)
if err != nil {
@@ -191,7 +192,7 @@ func PopulatePublicRooms(ctx context.Context, roomIDs []string, rsAPI QueryBulkS
joinCount := 0
var joinRule, guestAccess string
for tuple, contentVal := range data {
- if tuple.EventType == gomatrixserverlib.MRoomMember && contentVal == "join" {
+ if tuple.EventType == spec.MRoomMember && contentVal == "join" {
joinCount++
continue
}
@@ -215,7 +216,7 @@ func PopulatePublicRooms(ctx context.Context, roomIDs []string, rsAPI QueryBulkS
guestAccess = contentVal
}
}
- if joinRule == gomatrixserverlib.Public && guestAccess == "can_join" {
+ if joinRule == spec.Public && guestAccess == "can_join" {
pub.GuestCanJoin = true
}
pub.JoinedMembersCount = joinCount