aboutsummaryrefslogtreecommitdiff
path: root/clientapi
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 /clientapi
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 'clientapi')
-rw-r--r--clientapi/admin_test.go10
-rw-r--r--clientapi/auth/user_interactive_test.go4
-rw-r--r--clientapi/producers/syncapi.go7
-rw-r--r--clientapi/routing/admin.go3
-rw-r--r--clientapi/routing/aliases.go5
-rw-r--r--clientapi/routing/createroom.go68
-rw-r--r--clientapi/routing/directory.go9
-rw-r--r--clientapi/routing/directory_public.go4
-rw-r--r--clientapi/routing/joinroom.go4
-rw-r--r--clientapi/routing/membership.go15
-rw-r--r--clientapi/routing/peekroom.go4
-rw-r--r--clientapi/routing/presence.go4
-rw-r--r--clientapi/routing/profile.go3
-rw-r--r--clientapi/routing/receipt.go4
-rw-r--r--clientapi/routing/redaction.go5
-rw-r--r--clientapi/routing/register.go15
-rw-r--r--clientapi/routing/routing.go10
-rw-r--r--clientapi/routing/sendevent.go5
-rw-r--r--clientapi/routing/state.go11
-rw-r--r--clientapi/routing/userdirectory.go3
-rw-r--r--clientapi/threepid/invites.go3
-rw-r--r--clientapi/userutil/userutil.go5
-rw-r--r--clientapi/userutil/userutil_test.go12
23 files changed, 114 insertions, 99 deletions
diff --git a/clientapi/admin_test.go b/clientapi/admin_test.go
index da1ac70b..cf1c4ef3 100644
--- a/clientapi/admin_test.go
+++ b/clientapi/admin_test.go
@@ -18,8 +18,8 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/setup/jetstream"
"github.com/matrix-org/dendrite/syncapi"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/tidwall/gjson"
@@ -123,7 +123,7 @@ func TestPurgeRoom(t *testing.T) {
room := test.NewRoom(t, aliceAdmin, test.RoomPreset(test.PresetTrustedPrivateChat))
// Invite Bob
- room.CreateAndInsert(t, aliceAdmin, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, aliceAdmin, spec.MRoomMember, map[string]interface{}{
"membership": "invite",
}, test.WithStateKey(bob.ID))
@@ -194,7 +194,7 @@ func TestAdminEvacuateRoom(t *testing.T) {
room := test.NewRoom(t, aliceAdmin)
// Join Bob
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
@@ -291,10 +291,10 @@ func TestAdminEvacuateUser(t *testing.T) {
room2 := test.NewRoom(t, aliceAdmin)
// Join Bob
- room.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
- room2.CreateAndInsert(t, bob, gomatrixserverlib.MRoomMember, map[string]interface{}{
+ room2.CreateAndInsert(t, bob, spec.MRoomMember, map[string]interface{}{
"membership": "join",
}, test.WithStateKey(bob.ID))
diff --git a/clientapi/auth/user_interactive_test.go b/clientapi/auth/user_interactive_test.go
index 383a5339..4003e964 100644
--- a/clientapi/auth/user_interactive_test.go
+++ b/clientapi/auth/user_interactive_test.go
@@ -8,14 +8,14 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/userapi/api"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
var (
ctx = context.Background()
- serverName = gomatrixserverlib.ServerName("example.com")
+ serverName = spec.ServerName("example.com")
// space separated localpart+password -> account
lookup = make(map[string]*api.Account)
device = &api.Device{
diff --git a/clientapi/producers/syncapi.go b/clientapi/producers/syncapi.go
index 2dc0c484..905ecce4 100644
--- a/clientapi/producers/syncapi.go
+++ b/clientapi/producers/syncapi.go
@@ -22,6 +22,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
log "github.com/sirupsen/logrus"
@@ -37,13 +38,13 @@ type SyncAPIProducer struct {
TopicTypingEvent string
TopicPresenceEvent string
JetStream nats.JetStreamContext
- ServerName gomatrixserverlib.ServerName
+ ServerName spec.ServerName
UserAPI userapi.ClientUserAPI
}
func (p *SyncAPIProducer) SendReceipt(
ctx context.Context,
- userID, roomID, eventID, receiptType string, timestamp gomatrixserverlib.Timestamp,
+ userID, roomID, eventID, receiptType string, timestamp spec.Timestamp,
) error {
m := &nats.Msg{
Subject: p.TopicReceiptEvent,
@@ -154,7 +155,7 @@ func (p *SyncAPIProducer) SendPresence(
m.Header.Set("status_msg", *statusMsg)
}
- m.Header.Set("last_active_ts", strconv.Itoa(int(gomatrixserverlib.AsTimestamp(time.Now()))))
+ m.Header.Set("last_active_ts", strconv.Itoa(int(spec.AsTimestamp(time.Now()))))
_, err := p.JetStream.PublishMsg(m, nats.Context(ctx))
return err
diff --git a/clientapi/routing/admin.go b/clientapi/routing/admin.go
index 76e18f2f..809d486d 100644
--- a/clientapi/routing/admin.go
+++ b/clientapi/routing/admin.go
@@ -10,6 +10,7 @@ import (
"github.com/gorilla/mux"
"github.com/matrix-org/dendrite/internal"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/nats-io/nats.go"
"github.com/sirupsen/logrus"
@@ -262,7 +263,7 @@ func AdminDownloadState(req *http.Request, cfg *config.ClientAPI, device *api.De
&roomserverAPI.PerformAdminDownloadStateRequest{
UserID: device.UserID,
RoomID: roomID,
- ServerName: gomatrixserverlib.ServerName(serverName),
+ ServerName: spec.ServerName(serverName),
},
res,
); err != nil {
diff --git a/clientapi/routing/aliases.go b/clientapi/routing/aliases.go
index 68d0f419..90621daf 100644
--- a/clientapi/routing/aliases.go
+++ b/clientapi/routing/aliases.go
@@ -22,6 +22,7 @@ import (
"github.com/matrix-org/dendrite/roomserver/api"
userapi "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
@@ -31,7 +32,7 @@ func GetAliases(
req *http.Request, rsAPI api.ClientRoomserverAPI, device *userapi.Device, roomID string,
) util.JSONResponse {
stateTuple := gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomHistoryVisibility,
+ EventType: spec.MRoomHistoryVisibility,
StateKey: "",
}
stateReq := &api.QueryCurrentStateRequest{
@@ -53,7 +54,7 @@ func GetAliases(
return util.ErrorResponse(fmt.Errorf("historyVisEvent.HistoryVisibility: %w", err))
}
}
- if visibility != gomatrixserverlib.WorldReadable {
+ if visibility != spec.WorldReadable {
queryReq := api.QueryMembershipForUserRequest{
RoomID: roomID,
UserID: device.UserID,
diff --git a/clientapi/routing/createroom.go b/clientapi/routing/createroom.go
index c2a43213..a07ef2f5 100644
--- a/clientapi/routing/createroom.go
+++ b/clientapi/routing/createroom.go
@@ -26,6 +26,8 @@ import (
roomserverAPI "github.com/matrix-org/dendrite/roomserver/api"
roomserverVersion "github.com/matrix-org/dendrite/roomserver/version"
"github.com/matrix-org/dendrite/userapi/api"
+ "github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
@@ -233,7 +235,7 @@ func createRoom(
createContent["room_version"] = roomVersion
powerLevelContent := eventutil.InitialPowerLevelsContent(userID)
joinRuleContent := gomatrixserverlib.JoinRuleContent{
- JoinRule: gomatrixserverlib.Invite,
+ JoinRule: spec.Invite,
}
historyVisibilityContent := gomatrixserverlib.HistoryVisibilityContent{
HistoryVisibility: historyVisibilityShared,
@@ -253,40 +255,40 @@ func createRoom(
switch r.Preset {
case presetPrivateChat:
- joinRuleContent.JoinRule = gomatrixserverlib.Invite
+ joinRuleContent.JoinRule = spec.Invite
historyVisibilityContent.HistoryVisibility = historyVisibilityShared
case presetTrustedPrivateChat:
- joinRuleContent.JoinRule = gomatrixserverlib.Invite
+ joinRuleContent.JoinRule = spec.Invite
historyVisibilityContent.HistoryVisibility = historyVisibilityShared
for _, invitee := range r.Invite {
powerLevelContent.Users[invitee] = 100
}
case presetPublicChat:
- joinRuleContent.JoinRule = gomatrixserverlib.Public
+ joinRuleContent.JoinRule = spec.Public
historyVisibilityContent.HistoryVisibility = historyVisibilityShared
}
createEvent := fledglingEvent{
- Type: gomatrixserverlib.MRoomCreate,
+ Type: spec.MRoomCreate,
Content: createContent,
}
powerLevelEvent := fledglingEvent{
- Type: gomatrixserverlib.MRoomPowerLevels,
+ Type: spec.MRoomPowerLevels,
Content: powerLevelContent,
}
joinRuleEvent := fledglingEvent{
- Type: gomatrixserverlib.MRoomJoinRules,
+ Type: spec.MRoomJoinRules,
Content: joinRuleContent,
}
historyVisibilityEvent := fledglingEvent{
- Type: gomatrixserverlib.MRoomHistoryVisibility,
+ Type: spec.MRoomHistoryVisibility,
Content: historyVisibilityContent,
}
membershipEvent := fledglingEvent{
- Type: gomatrixserverlib.MRoomMember,
+ Type: spec.MRoomMember,
StateKey: userID,
Content: gomatrixserverlib.MemberContent{
- Membership: gomatrixserverlib.Join,
+ Membership: spec.Join,
DisplayName: profile.DisplayName,
AvatarURL: profile.AvatarURL,
},
@@ -299,7 +301,7 @@ func createRoom(
if r.Name != "" {
nameEvent = &fledglingEvent{
- Type: gomatrixserverlib.MRoomName,
+ Type: spec.MRoomName,
Content: eventutil.NameContent{
Name: r.Name,
},
@@ -308,7 +310,7 @@ func createRoom(
if r.Topic != "" {
topicEvent = &fledglingEvent{
- Type: gomatrixserverlib.MRoomTopic,
+ Type: spec.MRoomTopic,
Content: eventutil.TopicContent{
Topic: r.Topic,
},
@@ -317,7 +319,7 @@ func createRoom(
if r.GuestCanJoin {
guestAccessEvent = &fledglingEvent{
- Type: gomatrixserverlib.MRoomGuestAccess,
+ Type: spec.MRoomGuestAccess,
Content: eventutil.GuestAccessContent{
GuestAccess: "can_join",
},
@@ -347,7 +349,7 @@ func createRoom(
}
aliasEvent = &fledglingEvent{
- Type: gomatrixserverlib.MRoomCanonicalAlias,
+ Type: spec.MRoomCanonicalAlias,
Content: eventutil.CanonicalAlias{
Alias: roomAlias,
},
@@ -362,25 +364,25 @@ func createRoom(
}
switch r.InitialState[i].Type {
- case gomatrixserverlib.MRoomCreate:
+ case spec.MRoomCreate:
continue
- case gomatrixserverlib.MRoomPowerLevels:
+ case spec.MRoomPowerLevels:
powerLevelEvent = r.InitialState[i]
- case gomatrixserverlib.MRoomJoinRules:
+ case spec.MRoomJoinRules:
joinRuleEvent = r.InitialState[i]
- case gomatrixserverlib.MRoomHistoryVisibility:
+ case spec.MRoomHistoryVisibility:
historyVisibilityEvent = r.InitialState[i]
- case gomatrixserverlib.MRoomGuestAccess:
+ case spec.MRoomGuestAccess:
guestAccessEvent = &r.InitialState[i]
- case gomatrixserverlib.MRoomName:
+ case spec.MRoomName:
nameEvent = &r.InitialState[i]
- case gomatrixserverlib.MRoomTopic:
+ case spec.MRoomTopic:
topicEvent = &r.InitialState[i]
default:
@@ -510,30 +512,30 @@ func createRoom(
// If this is a direct message then we should invite the participants.
if len(r.Invite) > 0 {
// Build some stripped state for the invite.
- var globalStrippedState []gomatrixserverlib.InviteV2StrippedState
+ var globalStrippedState []fclient.InviteV2StrippedState
for _, event := range builtEvents {
// Chosen events from the spec:
// https://spec.matrix.org/v1.3/client-server-api/#stripped-state
switch event.Type() {
- case gomatrixserverlib.MRoomCreate:
+ case spec.MRoomCreate:
fallthrough
- case gomatrixserverlib.MRoomName:
+ case spec.MRoomName:
fallthrough
- case gomatrixserverlib.MRoomAvatar:
+ case spec.MRoomAvatar:
fallthrough
- case gomatrixserverlib.MRoomTopic:
+ case spec.MRoomTopic:
fallthrough
- case gomatrixserverlib.MRoomCanonicalAlias:
+ case spec.MRoomCanonicalAlias:
fallthrough
- case gomatrixserverlib.MRoomEncryption:
+ case spec.MRoomEncryption:
fallthrough
- case gomatrixserverlib.MRoomMember:
+ case spec.MRoomMember:
fallthrough
- case gomatrixserverlib.MRoomJoinRules:
+ case spec.MRoomJoinRules:
ev := event.Event
globalStrippedState = append(
globalStrippedState,
- gomatrixserverlib.NewInviteV2StrippedState(ev),
+ fclient.NewInviteV2StrippedState(ev),
)
}
}
@@ -542,7 +544,7 @@ func createRoom(
for _, invitee := range r.Invite {
// Build the invite event.
inviteEvent, err := buildMembershipEvent(
- ctx, invitee, "", profileAPI, device, gomatrixserverlib.Invite,
+ ctx, invitee, "", profileAPI, device, spec.Invite,
roomID, r.IsDirect, cfg, evTime, rsAPI, asAPI,
)
if err != nil {
@@ -551,7 +553,7 @@ func createRoom(
}
inviteStrippedState := append(
globalStrippedState,
- gomatrixserverlib.NewInviteV2StrippedState(inviteEvent.Event),
+ fclient.NewInviteV2StrippedState(inviteEvent.Event),
)
// Send the invite event to the roomserver.
var inviteRes roomserverAPI.PerformInviteResponse
diff --git a/clientapi/routing/directory.go b/clientapi/routing/directory.go
index 696f0c1e..e108f3cf 100644
--- a/clientapi/routing/directory.go
+++ b/clientapi/routing/directory.go
@@ -20,6 +20,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/matrix-org/dendrite/clientapi/httputil"
@@ -35,7 +36,7 @@ type roomDirectoryResponse struct {
Servers []string `json:"servers"`
}
-func (r *roomDirectoryResponse) fillServers(servers []gomatrixserverlib.ServerName) {
+func (r *roomDirectoryResponse) fillServers(servers []spec.ServerName) {
r.Servers = make([]string, len(servers))
for i, s := range servers {
r.Servers[i] = string(s)
@@ -253,7 +254,7 @@ func GetVisibility(
var v roomVisibility
if len(res.RoomIDs) == 1 {
- v.Visibility = gomatrixserverlib.Public
+ v.Visibility = spec.Public
} else {
v.Visibility = "private"
}
@@ -278,7 +279,7 @@ func SetVisibility(
queryEventsReq := roomserverAPI.QueryLatestEventsAndStateRequest{
RoomID: roomID,
StateToFetch: []gomatrixserverlib.StateKeyTuple{{
- EventType: gomatrixserverlib.MRoomPowerLevels,
+ EventType: spec.MRoomPowerLevels,
StateKey: "",
}},
}
@@ -291,7 +292,7 @@ func SetVisibility(
// NOTSPEC: Check if the user's power is greater than power required to change m.room.canonical_alias event
power, _ := gomatrixserverlib.NewPowerLevelContentFromEvent(queryEventsRes.StateEvents[0].Event)
- if power.UserLevel(dev.UserID) < power.EventLevel(gomatrixserverlib.MRoomCanonicalAlias, true) {
+ if power.UserLevel(dev.UserID) < power.EventLevel(spec.MRoomCanonicalAlias, true) {
return util.JSONResponse{
Code: http.StatusForbidden,
JSON: jsonerror.Forbidden("userID doesn't have power level to change visibility"),
diff --git a/clientapi/routing/directory_public.go b/clientapi/routing/directory_public.go
index 8e1e05a5..0616e79e 100644
--- a/clientapi/routing/directory_public.go
+++ b/clientapi/routing/directory_public.go
@@ -23,8 +23,8 @@ import (
"strings"
"sync"
- "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/api"
@@ -72,7 +72,7 @@ func GetPostPublicRooms(
}
}
- serverName := gomatrixserverlib.ServerName(request.Server)
+ serverName := spec.ServerName(request.Server)
if serverName != "" && !cfg.Matrix.IsLocalServerName(serverName) {
res, err := federation.GetPublicRoomsFiltered(
req.Context(), cfg.Matrix.ServerName, serverName,
diff --git a/clientapi/routing/joinroom.go b/clientapi/routing/joinroom.go
index 3493dd6d..d736a958 100644
--- a/clientapi/routing/joinroom.go
+++ b/clientapi/routing/joinroom.go
@@ -23,7 +23,7 @@ import (
"github.com/matrix-org/dendrite/clientapi/jsonerror"
roomserverAPI "github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/dendrite/userapi/api"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
@@ -49,7 +49,7 @@ func JoinRoomByIDOrAlias(
for _, serverName := range serverNames {
joinReq.ServerNames = append(
joinReq.ServerNames,
- gomatrixserverlib.ServerName(serverName),
+ spec.ServerName(serverName),
)
}
}
diff --git a/clientapi/routing/membership.go b/clientapi/routing/membership.go
index 1a96d4b1..13de4d00 100644
--- a/clientapi/routing/membership.go
+++ b/clientapi/routing/membership.go
@@ -21,6 +21,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
appserviceAPI "github.com/matrix-org/dendrite/appservice/api"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
@@ -70,7 +71,7 @@ func SendBan(
}
}
- return sendMembership(req.Context(), profileAPI, device, roomID, gomatrixserverlib.Ban, body.Reason, cfg, body.UserID, evTime, rsAPI, asAPI)
+ return sendMembership(req.Context(), profileAPI, device, roomID, spec.Ban, body.Reason, cfg, body.UserID, evTime, rsAPI, asAPI)
}
func sendMembership(ctx context.Context, profileAPI userapi.ClientUserAPI, device *userapi.Device,
@@ -149,14 +150,14 @@ func SendKick(
return util.ErrorResponse(err)
}
// kick is only valid if the user is not currently banned or left (that is, they are joined or invited)
- if queryRes.Membership != gomatrixserverlib.Join && queryRes.Membership != gomatrixserverlib.Invite {
+ if queryRes.Membership != spec.Join && queryRes.Membership != spec.Invite {
return util.JSONResponse{
Code: http.StatusForbidden,
JSON: jsonerror.Unknown("cannot /kick banned or left users"),
}
}
// TODO: should we be using SendLeave instead?
- return sendMembership(req.Context(), profileAPI, device, roomID, gomatrixserverlib.Leave, body.Reason, cfg, body.UserID, evTime, rsAPI, asAPI)
+ return sendMembership(req.Context(), profileAPI, device, roomID, spec.Leave, body.Reason, cfg, body.UserID, evTime, rsAPI, asAPI)
}
func SendUnban(
@@ -190,14 +191,14 @@ func SendUnban(
}
// unban is only valid if the user is currently banned
- if queryRes.Membership != gomatrixserverlib.Ban {
+ if queryRes.Membership != spec.Ban {
return util.JSONResponse{
Code: http.StatusBadRequest,
JSON: jsonerror.Unknown("can only /unban users that are banned"),
}
}
// TODO: should we be using SendLeave instead?
- return sendMembership(req.Context(), profileAPI, device, roomID, gomatrixserverlib.Leave, body.Reason, cfg, body.UserID, evTime, rsAPI, asAPI)
+ return sendMembership(req.Context(), profileAPI, device, roomID, spec.Leave, body.Reason, cfg, body.UserID, evTime, rsAPI, asAPI)
}
func SendInvite(
@@ -255,7 +256,7 @@ func sendInvite(
asAPI appserviceAPI.AppServiceInternalAPI, evTime time.Time,
) (util.JSONResponse, error) {
event, err := buildMembershipEvent(
- ctx, userID, reason, profileAPI, device, gomatrixserverlib.Invite,
+ ctx, userID, reason, profileAPI, device, spec.Invite,
roomID, false, cfg, evTime, rsAPI, asAPI,
)
if err != nil {
@@ -480,7 +481,7 @@ func SendForget(
func getPowerlevels(req *http.Request, rsAPI roomserverAPI.ClientRoomserverAPI, roomID string) (*gomatrixserverlib.PowerLevelContent, *util.JSONResponse) {
plEvent := roomserverAPI.GetStateEvent(req.Context(), rsAPI, roomID, gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomPowerLevels,
+ EventType: spec.MRoomPowerLevels,
StateKey: "",
})
if plEvent == nil {
diff --git a/clientapi/routing/peekroom.go b/clientapi/routing/peekroom.go
index 9b2592eb..9a8f4378 100644
--- a/clientapi/routing/peekroom.go
+++ b/clientapi/routing/peekroom.go
@@ -20,7 +20,7 @@ import (
"github.com/matrix-org/dendrite/clientapi/jsonerror"
roomserverAPI "github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/dendrite/userapi/api"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
@@ -49,7 +49,7 @@ func PeekRoomByIDOrAlias(
for _, serverName := range serverNames {
peekReq.ServerNames = append(
peekReq.ServerNames,
- gomatrixserverlib.ServerName(serverName),
+ spec.ServerName(serverName),
)
}
}
diff --git a/clientapi/routing/presence.go b/clientapi/routing/presence.go
index 093a6246..c50b0943 100644
--- a/clientapi/routing/presence.go
+++ b/clientapi/routing/presence.go
@@ -27,7 +27,7 @@ import (
"github.com/matrix-org/dendrite/setup/jetstream"
"github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/dendrite/userapi/api"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/nats-io/nats.go"
log "github.com/sirupsen/logrus"
@@ -123,7 +123,7 @@ func GetPresence(
}
}
- p := types.PresenceInternal{LastActiveTS: gomatrixserverlib.Timestamp(lastActive)}
+ p := types.PresenceInternal{LastActiveTS: spec.Timestamp(lastActive)}
currentlyActive := p.CurrentlyActive()
return util.JSONResponse{
Code: http.StatusOK,
diff --git a/clientapi/routing/profile.go b/clientapi/routing/profile.go
index 38b37a25..6d1a0824 100644
--- a/clientapi/routing/profile.go
+++ b/clientapi/routing/profile.go
@@ -21,6 +21,7 @@ import (
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
appserviceAPI "github.com/matrix-org/dendrite/appservice/api"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
@@ -351,7 +352,7 @@ func buildMembershipEvents(
}
content := gomatrixserverlib.MemberContent{
- Membership: gomatrixserverlib.Join,
+ Membership: spec.Join,
}
content.DisplayName = newProfile.DisplayName
diff --git a/clientapi/routing/receipt.go b/clientapi/routing/receipt.go
index 99217a78..634b60b7 100644
--- a/clientapi/routing/receipt.go
+++ b/clientapi/routing/receipt.go
@@ -22,7 +22,7 @@ import (
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/clientapi/producers"
- "github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/dendrite/userapi/api"
userapi "github.com/matrix-org/dendrite/userapi/api"
@@ -31,7 +31,7 @@ import (
)
func SetReceipt(req *http.Request, userAPI api.ClientUserAPI, syncProducer *producers.SyncAPIProducer, device *userapi.Device, roomID, receiptType, eventID string) util.JSONResponse {
- timestamp := gomatrixserverlib.AsTimestamp(time.Now())
+ timestamp := spec.AsTimestamp(time.Now())
logrus.WithFields(logrus.Fields{
"roomID": roomID,
"receiptType": receiptType,
diff --git a/clientapi/routing/redaction.go b/clientapi/routing/redaction.go
index f86bbc8f..2bdf6705 100644
--- a/clientapi/routing/redaction.go
+++ b/clientapi/routing/redaction.go
@@ -20,6 +20,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/matrix-org/dendrite/clientapi/httputil"
@@ -77,7 +78,7 @@ func SendRedaction(
allowedToRedact := ev.Sender() == device.UserID
if !allowedToRedact {
plEvent := roomserverAPI.GetStateEvent(req.Context(), rsAPI, roomID, gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomPowerLevels,
+ EventType: spec.MRoomPowerLevels,
StateKey: "",
})
if plEvent == nil {
@@ -114,7 +115,7 @@ func SendRedaction(
builder := gomatrixserverlib.EventBuilder{
Sender: device.UserID,
RoomID: roomID,
- Type: gomatrixserverlib.MRoomRedaction,
+ Type: spec.MRoomRedaction,
Redacts: eventID,
}
err := builder.SetContent(r)
diff --git a/clientapi/routing/register.go b/clientapi/routing/register.go
index d880961f..8e7f7758 100644
--- a/clientapi/routing/register.go
+++ b/clientapi/routing/register.go
@@ -37,6 +37,7 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/gomatrixserverlib/tokens"
"github.com/matrix-org/util"
"github.com/prometheus/client_golang/prometheus"
@@ -206,10 +207,10 @@ var (
// previous parameters with the ones supplied. This mean you cannot "build up" request params.
type registerRequest struct {
// registration parameters
- Password string `json:"password"`
- Username string `json:"username"`
- ServerName gomatrixserverlib.ServerName `json:"-"`
- Admin bool `json:"admin"`
+ Password string `json:"password"`
+ Username string `json:"username"`
+ ServerName spec.ServerName `json:"-"`
+ Admin bool `json:"admin"`
// user-interactive auth params
Auth authDict `json:"auth"`
@@ -478,7 +479,7 @@ func Register(
}
var r registerRequest
- host := gomatrixserverlib.ServerName(req.Host)
+ host := spec.ServerName(req.Host)
if v := cfg.Matrix.VirtualHostForHTTPHost(host); v != nil {
r.ServerName = v.ServerName
} else {
@@ -824,7 +825,7 @@ func checkAndCompleteFlow(
func completeRegistration(
ctx context.Context,
userAPI userapi.ClientUserAPI,
- username string, serverName gomatrixserverlib.ServerName, displayName string,
+ username string, serverName spec.ServerName, displayName string,
password, appserviceID, ipAddr, userAgent, sessionID string,
inhibitLogin eventutil.WeakBoolean,
deviceDisplayName, deviceID *string,
@@ -994,7 +995,7 @@ func RegisterAvailable(
// Squash username to all lowercase letters
username = strings.ToLower(username)
domain := cfg.Matrix.ServerName
- host := gomatrixserverlib.ServerName(req.Host)
+ host := spec.ServerName(req.Host)
if v := cfg.Matrix.VirtualHostForHTTPHost(host); v != nil {
domain = v.ServerName
}
diff --git a/clientapi/routing/routing.go b/clientapi/routing/routing.go
index c7d01a01..9bf9ac80 100644
--- a/clientapi/routing/routing.go
+++ b/clientapi/routing/routing.go
@@ -22,8 +22,8 @@ import (
"github.com/gorilla/mux"
"github.com/matrix-org/dendrite/setup/base"
userapi "github.com/matrix-org/dendrite/userapi/api"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/nats-io/nats.go"
"github.com/prometheus/client_golang/prometheus"
@@ -257,7 +257,7 @@ func Setup(
}),
).Methods(http.MethodPost, http.MethodOptions)
v3mux.Handle("/join/{roomIDOrAlias}",
- httputil.MakeAuthAPI(gomatrixserverlib.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
+ httputil.MakeAuthAPI(spec.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
if r := rateLimits.Limit(req, device); r != nil {
return *r
}
@@ -273,7 +273,7 @@ func Setup(
if mscCfg.Enabled("msc2753") {
v3mux.Handle("/peek/{roomIDOrAlias}",
- httputil.MakeAuthAPI(gomatrixserverlib.Peek, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
+ httputil.MakeAuthAPI(spec.Peek, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
if r := rateLimits.Limit(req, device); r != nil {
return *r
}
@@ -293,7 +293,7 @@ func Setup(
}, httputil.WithAllowGuests()),
).Methods(http.MethodGet, http.MethodOptions)
v3mux.Handle("/rooms/{roomID}/join",
- httputil.MakeAuthAPI(gomatrixserverlib.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
+ httputil.MakeAuthAPI(spec.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
if r := rateLimits.Limit(req, device); r != nil {
return *r
}
@@ -1398,7 +1398,7 @@ func Setup(
}, httputil.WithAllowGuests()),
).Methods(http.MethodPost, http.MethodOptions)
v3mux.Handle("/rooms/{roomId}/receipt/{receiptType}/{eventId}",
- httputil.MakeAuthAPI(gomatrixserverlib.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
+ httputil.MakeAuthAPI(spec.Join, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
if r := rateLimits.Limit(req, device); r != nil {
return *r
}
diff --git a/clientapi/routing/sendevent.go b/clientapi/routing/sendevent.go
index 90af9ac4..b1f8fa03 100644
--- a/clientapi/routing/sendevent.go
+++ b/clientapi/routing/sendevent.go
@@ -24,6 +24,7 @@ import (
"time"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
"github.com/prometheus/client_golang/prometheus"
"github.com/sirupsen/logrus"
@@ -117,7 +118,7 @@ func SendEvent(
// If we're sending a membership update, make sure to strip the authorised
// via key if it is present, otherwise other servers won't be able to auth
// the event if the room is set to the "restricted" join rule.
- if eventType == gomatrixserverlib.MRoomMember {
+ if eventType == spec.MRoomMember {
delete(r, "join_authorised_via_users_server")
}
@@ -136,7 +137,7 @@ func SendEvent(
timeToGenerateEvent := time.Since(startedGeneratingEvent)
// validate that the aliases exists
- if eventType == gomatrixserverlib.MRoomCanonicalAlias && stateKey != nil && *stateKey == "" {
+ if eventType == spec.MRoomCanonicalAlias && stateKey != nil && *stateKey == "" {
aliasReq := api.AliasEvent{}
if err = json.Unmarshal(e.Content(), &aliasReq); err != nil {
return util.ErrorResponse(fmt.Errorf("unable to parse alias event: %w", err))
diff --git a/clientapi/routing/state.go b/clientapi/routing/state.go
index 59ed9a5f..3fb15766 100644
--- a/clientapi/routing/state.go
+++ b/clientapi/routing/state.go
@@ -25,6 +25,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/synctypes"
userapi "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
log "github.com/sirupsen/logrus"
)
@@ -68,7 +69,7 @@ func OnIncomingStateRequest(ctx context.Context, device *userapi.Device, rsAPI a
// that marks the room as world-readable. If we don't then we assume that
// the room is not world-readable.
for _, ev := range stateRes.StateEvents {
- if ev.Type() == gomatrixserverlib.MRoomHistoryVisibility {
+ if ev.Type() == spec.MRoomHistoryVisibility {
content := map[string]string{}
if err := json.Unmarshal(ev.Content(), &content); err != nil {
util.GetLogger(ctx).WithError(err).Error("json.Unmarshal for history visibility failed")
@@ -185,9 +186,9 @@ func OnIncomingStateTypeRequest(
StateKey: stateKey,
},
}
- if evType != gomatrixserverlib.MRoomHistoryVisibility && stateKey != "" {
+ if evType != spec.MRoomHistoryVisibility && stateKey != "" {
stateToFetch = append(stateToFetch, gomatrixserverlib.StateKeyTuple{
- EventType: gomatrixserverlib.MRoomHistoryVisibility,
+ EventType: spec.MRoomHistoryVisibility,
StateKey: "",
})
}
@@ -208,7 +209,7 @@ func OnIncomingStateTypeRequest(
// that marks the room as world-readable. If we don't then we assume that
// the room is not world-readable.
for _, ev := range stateRes.StateEvents {
- if ev.Type() == gomatrixserverlib.MRoomHistoryVisibility {
+ if ev.Type() == spec.MRoomHistoryVisibility {
content := map[string]string{}
if err := json.Unmarshal(ev.Content(), &content); err != nil {
util.GetLogger(ctx).WithError(err).Error("json.Unmarshal for history visibility failed")
@@ -242,7 +243,7 @@ func OnIncomingStateTypeRequest(
}
// If the user has never been in the room then stop at this point.
// We won't tell the user about a room they have never joined.
- if !membershipRes.HasBeenInRoom || membershipRes.Membership == gomatrixserverlib.Ban {
+ if !membershipRes.HasBeenInRoom || membershipRes.Membership == spec.Ban {
return util.JSONResponse{
Code: http.StatusForbidden,
JSON: jsonerror.Forbidden(fmt.Sprintf("Unknown room %q or user %q has never joined this room", roomID, device.UserID)),
diff --git a/clientapi/routing/userdirectory.go b/clientapi/routing/userdirectory.go
index a4cf8e9c..0d021c7a 100644
--- a/clientapi/routing/userdirectory.go
+++ b/clientapi/routing/userdirectory.go
@@ -27,6 +27,7 @@ import (
"github.com/matrix-org/gomatrix"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
"github.com/matrix-org/util"
)
@@ -43,7 +44,7 @@ func SearchUserDirectory(
searchString string,
limit int,
federation *fclient.FederationClient,
- localServerName gomatrixserverlib.ServerName,
+ localServerName spec.ServerName,
) util.JSONResponse {
if limit < 10 {
limit = 10
diff --git a/clientapi/threepid/invites.go b/clientapi/threepid/invites.go
index a9910b78..34fa5415 100644
--- a/clientapi/threepid/invites.go
+++ b/clientapi/threepid/invites.go
@@ -30,6 +30,7 @@ import (
"github.com/matrix-org/dendrite/setup/config"
userapi "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// MembershipRequest represents the body of an incoming POST request
@@ -278,7 +279,7 @@ func queryIDServerPubKey(ctx context.Context, idServerName string, keyID string)
}
var pubKeyRes struct {
- PublicKey gomatrixserverlib.Base64Bytes `json:"public_key"`
+ PublicKey spec.Base64Bytes `json:"public_key"`
}
if resp.StatusCode != http.StatusOK {
diff --git a/clientapi/userutil/userutil.go b/clientapi/userutil/userutil.go
index 9be1e9b3..26237142 100644
--- a/clientapi/userutil/userutil.go
+++ b/clientapi/userutil/userutil.go
@@ -19,13 +19,14 @@ import (
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
// ParseUsernameParam extracts localpart from usernameParam.
// usernameParam can either be a user ID or just the localpart/username.
// If serverName is passed, it is verified against the domain obtained from usernameParam (if present)
// Returns error in case of invalid usernameParam.
-func ParseUsernameParam(usernameParam string, cfg *config.Global) (string, gomatrixserverlib.ServerName, error) {
+func ParseUsernameParam(usernameParam string, cfg *config.Global) (string, spec.ServerName, error) {
localpart := usernameParam
if strings.HasPrefix(usernameParam, "@") {
@@ -45,6 +46,6 @@ func ParseUsernameParam(usernameParam string, cfg *config.Global) (string, gomat
}
// MakeUserID generates user ID from localpart & server name
-func MakeUserID(localpart string, server gomatrixserverlib.ServerName) string {
+func MakeUserID(localpart string, server spec.ServerName) string {
return fmt.Sprintf("@%s:%s", localpart, string(server))
}
diff --git a/clientapi/userutil/userutil_test.go b/clientapi/userutil/userutil_test.go
index 8910983b..cdda0a88 100644
--- a/clientapi/userutil/userutil_test.go
+++ b/clientapi/userutil/userutil_test.go
@@ -16,16 +16,16 @@ import (
"testing"
"github.com/matrix-org/dendrite/setup/config"
- "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/gomatrixserverlib/fclient"
+ "github.com/matrix-org/gomatrixserverlib/spec"
)
var (
- localpart = "somelocalpart"
- serverName gomatrixserverlib.ServerName = "someservername"
- invalidServerName gomatrixserverlib.ServerName = "invalidservername"
- goodUserID = "@" + localpart + ":" + string(serverName)
- badUserID = "@bad:user:name@noservername:"
+ localpart = "somelocalpart"
+ serverName spec.ServerName = "someservername"
+ invalidServerName spec.ServerName = "invalidservername"
+ goodUserID = "@" + localpart + ":" + string(serverName)
+ badUserID = "@bad:user:name@noservername:"
)
// TestGoodUserID checks that correct localpart is returned for a valid user ID.