aboutsummaryrefslogtreecommitdiff
path: root/clientapi
diff options
context:
space:
mode:
authorNeil Alexander <neilalexander@users.noreply.github.com>2020-05-01 10:48:17 +0100
committerGitHub <noreply@github.com>2020-05-01 10:48:17 +0100
commite15f6676ac3f76ec2ef679c2df300d6a8e7e668f (patch)
tree0b82339939e8932d46e1ca2cf6024ab55dc7602f /clientapi
parentebbfc125920beb321713e28a2a137d768406fa15 (diff)
Consolidation of roomserver APIs (#994)
* Consolidation of roomserver APIs * Comment out alias tests for now, they are broken * Wire AS API into roomserver again * Roomserver didn't take asAPI param before so return to that * Prevent roomserver asking AS API for alias info * Rename some files * Remove alias_test, incoherent tests and unwanted appservice integration * Remove FS API inject on syncapi component
Diffstat (limited to 'clientapi')
-rw-r--r--clientapi/clientapi.go10
-rw-r--r--clientapi/consumers/roomserver.go22
-rw-r--r--clientapi/producers/roomserver.go12
-rw-r--r--clientapi/routing/capabilities.go4
-rw-r--r--clientapi/routing/createroom.go8
-rw-r--r--clientapi/routing/directory.go6
-rw-r--r--clientapi/routing/getevent.go6
-rw-r--r--clientapi/routing/joinroom.go14
-rw-r--r--clientapi/routing/membership.go16
-rw-r--r--clientapi/routing/memberships.go6
-rw-r--r--clientapi/routing/profile.go14
-rw-r--r--clientapi/routing/routing.go41
-rw-r--r--clientapi/routing/sendevent.go10
-rw-r--r--clientapi/routing/state.go8
-rw-r--r--clientapi/threepid/invites.go8
15 files changed, 89 insertions, 96 deletions
diff --git a/clientapi/clientapi.go b/clientapi/clientapi.go
index 6a857e52..f81e0242 100644
--- a/clientapi/clientapi.go
+++ b/clientapi/clientapi.go
@@ -38,15 +38,13 @@ func SetupClientAPIComponent(
accountsDB accounts.Database,
federation *gomatrixserverlib.FederationClient,
keyRing *gomatrixserverlib.KeyRing,
- aliasAPI roomserverAPI.RoomserverAliasAPI,
- inputAPI roomserverAPI.RoomserverInputAPI,
- queryAPI roomserverAPI.RoomserverQueryAPI,
+ rsAPI roomserverAPI.RoomserverInternalAPI,
eduInputAPI eduServerAPI.EDUServerInputAPI,
asAPI appserviceAPI.AppServiceQueryAPI,
transactionsCache *transactions.Cache,
fsAPI federationSenderAPI.FederationSenderInternalAPI,
) {
- roomserverProducer := producers.NewRoomserverProducer(inputAPI, queryAPI)
+ roomserverProducer := producers.NewRoomserverProducer(rsAPI)
eduProducer := producers.NewEDUServerProducer(eduInputAPI)
userUpdateProducer := &producers.UserUpdateProducer{
@@ -60,14 +58,14 @@ func SetupClientAPIComponent(
}
consumer := consumers.NewOutputRoomEventConsumer(
- base.Cfg, base.KafkaConsumer, accountsDB, queryAPI,
+ base.Cfg, base.KafkaConsumer, accountsDB, rsAPI,
)
if err := consumer.Start(); err != nil {
logrus.WithError(err).Panicf("failed to start room server consumer")
}
routing.Setup(
- base.APIMux, base.Cfg, roomserverProducer, queryAPI, aliasAPI, asAPI,
+ base.APIMux, base.Cfg, roomserverProducer, rsAPI, asAPI,
accountsDB, deviceDB, federation, *keyRing, userUpdateProducer,
syncProducer, eduProducer, transactionsCache, fsAPI,
)
diff --git a/clientapi/consumers/roomserver.go b/clientapi/consumers/roomserver.go
index 3c790572..d0c91e88 100644
--- a/clientapi/consumers/roomserver.go
+++ b/clientapi/consumers/roomserver.go
@@ -30,10 +30,10 @@ import (
// OutputRoomEventConsumer consumes events that originated in the room server.
type OutputRoomEventConsumer struct {
- roomServerConsumer *common.ContinualConsumer
- db accounts.Database
- query api.RoomserverQueryAPI
- serverName string
+ rsAPI api.RoomserverInternalAPI
+ rsConsumer *common.ContinualConsumer
+ db accounts.Database
+ serverName string
}
// NewOutputRoomEventConsumer creates a new OutputRoomEventConsumer. Call Start() to begin consuming from room servers.
@@ -41,7 +41,7 @@ func NewOutputRoomEventConsumer(
cfg *config.Dendrite,
kafkaConsumer sarama.Consumer,
store accounts.Database,
- queryAPI api.RoomserverQueryAPI,
+ rsAPI api.RoomserverInternalAPI,
) *OutputRoomEventConsumer {
consumer := common.ContinualConsumer{
@@ -50,10 +50,10 @@ func NewOutputRoomEventConsumer(
PartitionStore: store,
}
s := &OutputRoomEventConsumer{
- roomServerConsumer: &consumer,
- db: store,
- query: queryAPI,
- serverName: string(cfg.Matrix.ServerName),
+ rsConsumer: &consumer,
+ db: store,
+ rsAPI: rsAPI,
+ serverName: string(cfg.Matrix.ServerName),
}
consumer.ProcessMessage = s.onMessage
@@ -62,7 +62,7 @@ func NewOutputRoomEventConsumer(
// Start consuming from room servers
func (s *OutputRoomEventConsumer) Start() error {
- return s.roomServerConsumer.Start()
+ return s.rsConsumer.Start()
}
// onMessage is called when the sync server receives a new event from the room server output log.
@@ -134,7 +134,7 @@ func (s *OutputRoomEventConsumer) lookupStateEvents(
// Request the missing events from the roomserver
eventReq := api.QueryEventsByIDRequest{EventIDs: missing}
var eventResp api.QueryEventsByIDResponse
- if err := s.query.QueryEventsByID(context.TODO(), &eventReq, &eventResp); err != nil {
+ if err := s.rsAPI.QueryEventsByID(context.TODO(), &eventReq, &eventResp); err != nil {
return nil, err
}
diff --git a/clientapi/producers/roomserver.go b/clientapi/producers/roomserver.go
index fac1e3c7..a804abfe 100644
--- a/clientapi/producers/roomserver.go
+++ b/clientapi/producers/roomserver.go
@@ -23,15 +23,13 @@ import (
// RoomserverProducer produces events for the roomserver to consume.
type RoomserverProducer struct {
- InputAPI api.RoomserverInputAPI
- QueryAPI api.RoomserverQueryAPI
+ RsAPI api.RoomserverInternalAPI
}
// NewRoomserverProducer creates a new RoomserverProducer
-func NewRoomserverProducer(inputAPI api.RoomserverInputAPI, queryAPI api.RoomserverQueryAPI) *RoomserverProducer {
+func NewRoomserverProducer(rsAPI api.RoomserverInternalAPI) *RoomserverProducer {
return &RoomserverProducer{
- InputAPI: inputAPI,
- QueryAPI: queryAPI,
+ RsAPI: rsAPI,
}
}
@@ -95,7 +93,7 @@ func (c *RoomserverProducer) SendInputRoomEvents(
) (eventID string, err error) {
request := api.InputRoomEventsRequest{InputRoomEvents: ires}
var response api.InputRoomEventsResponse
- err = c.InputAPI.InputRoomEvents(ctx, &request, &response)
+ err = c.RsAPI.InputRoomEvents(ctx, &request, &response)
eventID = response.EventID
return
}
@@ -118,5 +116,5 @@ func (c *RoomserverProducer) SendInvite(
}},
}
var response api.InputRoomEventsResponse
- return c.InputAPI.InputRoomEvents(ctx, &request, &response)
+ return c.RsAPI.InputRoomEvents(ctx, &request, &response)
}
diff --git a/clientapi/routing/capabilities.go b/clientapi/routing/capabilities.go
index 1792c630..199b1524 100644
--- a/clientapi/routing/capabilities.go
+++ b/clientapi/routing/capabilities.go
@@ -26,11 +26,11 @@ import (
// SendMembership implements PUT /rooms/{roomID}/(join|kick|ban|unban|leave|invite)
// by building a m.room.member event then sending it to the room server
func GetCapabilities(
- req *http.Request, queryAPI roomserverAPI.RoomserverQueryAPI,
+ req *http.Request, rsAPI roomserverAPI.RoomserverInternalAPI,
) util.JSONResponse {
roomVersionsQueryReq := roomserverAPI.QueryRoomVersionCapabilitiesRequest{}
roomVersionsQueryRes := roomserverAPI.QueryRoomVersionCapabilitiesResponse{}
- if err := queryAPI.QueryRoomVersionCapabilities(
+ if err := rsAPI.QueryRoomVersionCapabilities(
req.Context(),
&roomVersionsQueryReq,
&roomVersionsQueryRes,
diff --git a/clientapi/routing/createroom.go b/clientapi/routing/createroom.go
index ef11e8b3..28e2b151 100644
--- a/clientapi/routing/createroom.go
+++ b/clientapi/routing/createroom.go
@@ -137,13 +137,13 @@ type fledglingEvent struct {
func CreateRoom(
req *http.Request, device *authtypes.Device,
cfg *config.Dendrite, producer *producers.RoomserverProducer,
- accountDB accounts.Database, aliasAPI roomserverAPI.RoomserverAliasAPI,
+ accountDB accounts.Database, rsAPI roomserverAPI.RoomserverInternalAPI,
asAPI appserviceAPI.AppServiceQueryAPI,
) util.JSONResponse {
// TODO (#267): Check room ID doesn't clash with an existing one, and we
// probably shouldn't be using pseudo-random strings, maybe GUIDs?
roomID := fmt.Sprintf("!%s:%s", util.RandomString(16), cfg.Matrix.ServerName)
- return createRoom(req, device, cfg, roomID, producer, accountDB, aliasAPI, asAPI)
+ return createRoom(req, device, cfg, roomID, producer, accountDB, rsAPI, asAPI)
}
// createRoom implements /createRoom
@@ -151,7 +151,7 @@ func CreateRoom(
func createRoom(
req *http.Request, device *authtypes.Device,
cfg *config.Dendrite, roomID string, producer *producers.RoomserverProducer,
- accountDB accounts.Database, aliasAPI roomserverAPI.RoomserverAliasAPI,
+ accountDB accounts.Database, rsAPI roomserverAPI.RoomserverInternalAPI,
asAPI appserviceAPI.AppServiceQueryAPI,
) util.JSONResponse {
logger := util.GetLogger(req.Context())
@@ -340,7 +340,7 @@ func createRoom(
}
var aliasResp roomserverAPI.SetRoomAliasResponse
- err = aliasAPI.SetRoomAlias(req.Context(), &aliasReq, &aliasResp)
+ err = rsAPI.SetRoomAlias(req.Context(), &aliasReq, &aliasResp)
if err != nil {
util.GetLogger(req.Context()).WithError(err).Error("aliasAPI.SetRoomAlias failed")
return jsonerror.InternalServerError()
diff --git a/clientapi/routing/directory.go b/clientapi/routing/directory.go
index 101ba11f..a0a60a47 100644
--- a/clientapi/routing/directory.go
+++ b/clientapi/routing/directory.go
@@ -46,7 +46,7 @@ func DirectoryRoom(
roomAlias string,
federation *gomatrixserverlib.FederationClient,
cfg *config.Dendrite,
- rsAPI roomserverAPI.RoomserverAliasAPI,
+ rsAPI roomserverAPI.RoomserverInternalAPI,
fedSenderAPI federationSenderAPI.FederationSenderInternalAPI,
) util.JSONResponse {
_, domain, err := gomatrixserverlib.SplitID('#', roomAlias)
@@ -115,7 +115,7 @@ func SetLocalAlias(
device *authtypes.Device,
alias string,
cfg *config.Dendrite,
- aliasAPI roomserverAPI.RoomserverAliasAPI,
+ aliasAPI roomserverAPI.RoomserverInternalAPI,
) util.JSONResponse {
_, domain, err := gomatrixserverlib.SplitID('#', alias)
if err != nil {
@@ -190,7 +190,7 @@ func RemoveLocalAlias(
req *http.Request,
device *authtypes.Device,
alias string,
- aliasAPI roomserverAPI.RoomserverAliasAPI,
+ aliasAPI roomserverAPI.RoomserverInternalAPI,
) util.JSONResponse {
creatorQueryReq := roomserverAPI.GetCreatorIDForAliasRequest{
diff --git a/clientapi/routing/getevent.go b/clientapi/routing/getevent.go
index 2d315251..bf49968d 100644
--- a/clientapi/routing/getevent.go
+++ b/clientapi/routing/getevent.go
@@ -44,7 +44,7 @@ func GetEvent(
roomID string,
eventID string,
cfg *config.Dendrite,
- queryAPI api.RoomserverQueryAPI,
+ rsAPI api.RoomserverInternalAPI,
federation *gomatrixserverlib.FederationClient,
keyRing gomatrixserverlib.KeyRing,
) util.JSONResponse {
@@ -52,7 +52,7 @@ func GetEvent(
EventIDs: []string{eventID},
}
var eventsResp api.QueryEventsByIDResponse
- err := queryAPI.QueryEventsByID(req.Context(), &eventsReq, &eventsResp)
+ err := rsAPI.QueryEventsByID(req.Context(), &eventsReq, &eventsResp)
if err != nil {
util.GetLogger(req.Context()).WithError(err).Error("queryAPI.QueryEventsByID failed")
return jsonerror.InternalServerError()
@@ -88,7 +88,7 @@ func GetEvent(
}},
}
var stateResp api.QueryStateAfterEventsResponse
- if err := queryAPI.QueryStateAfterEvents(req.Context(), &stateReq, &stateResp); err != nil {
+ if err := rsAPI.QueryStateAfterEvents(req.Context(), &stateReq, &stateResp); err != nil {
util.GetLogger(req.Context()).WithError(err).Error("queryAPI.QueryStateAfterEvents failed")
return jsonerror.InternalServerError()
}
diff --git a/clientapi/routing/joinroom.go b/clientapi/routing/joinroom.go
index f55d1b6a..df83c2a9 100644
--- a/clientapi/routing/joinroom.go
+++ b/clientapi/routing/joinroom.go
@@ -43,8 +43,7 @@ func JoinRoomByIDOrAlias(
cfg *config.Dendrite,
federation *gomatrixserverlib.FederationClient,
producer *producers.RoomserverProducer,
- queryAPI roomserverAPI.RoomserverQueryAPI,
- aliasAPI roomserverAPI.RoomserverAliasAPI,
+ rsAPI roomserverAPI.RoomserverInternalAPI,
fsAPI federationSenderAPI.FederationSenderInternalAPI,
keyRing gomatrixserverlib.KeyRing,
accountDB accounts.Database,
@@ -80,7 +79,7 @@ func JoinRoomByIDOrAlias(
r := joinRoomReq{
req, evTime, content, device.UserID, cfg, federation, producer,
- queryAPI, aliasAPI, fsAPI, keyRing,
+ rsAPI, fsAPI, keyRing,
}
if strings.HasPrefix(roomIDOrAlias, "!") {
@@ -106,8 +105,7 @@ type joinRoomReq struct {
cfg *config.Dendrite
federation *gomatrixserverlib.FederationClient
producer *producers.RoomserverProducer
- queryAPI roomserverAPI.RoomserverQueryAPI
- aliasAPI roomserverAPI.RoomserverAliasAPI
+ rsAPI roomserverAPI.RoomserverInternalAPI
fsAPI federationSenderAPI.FederationSenderInternalAPI
keyRing gomatrixserverlib.KeyRing
}
@@ -124,7 +122,7 @@ func (r joinRoomReq) joinRoomByID(roomID string) util.JSONResponse {
RoomID: roomID, TargetUserID: r.userID,
}
var queryRes roomserverAPI.QueryInvitesForUserResponse
- if err := r.queryAPI.QueryInvitesForUser(r.req.Context(), &queryReq, &queryRes); err != nil {
+ if err := r.rsAPI.QueryInvitesForUser(r.req.Context(), &queryReq, &queryRes); err != nil {
util.GetLogger(r.req.Context()).WithError(err).Error("r.queryAPI.QueryInvitesForUser failed")
return jsonerror.InternalServerError()
}
@@ -172,7 +170,7 @@ func (r joinRoomReq) joinRoomByAlias(roomAlias string) util.JSONResponse {
if domain == r.cfg.Matrix.ServerName {
queryReq := roomserverAPI.GetRoomIDForAliasRequest{Alias: roomAlias}
var queryRes roomserverAPI.GetRoomIDForAliasResponse
- if err = r.aliasAPI.GetRoomIDForAlias(r.req.Context(), &queryReq, &queryRes); err != nil {
+ if err = r.rsAPI.GetRoomIDForAlias(r.req.Context(), &queryReq, &queryRes); err != nil {
util.GetLogger(r.req.Context()).WithError(err).Error("r.aliasAPI.GetRoomIDForAlias failed")
return jsonerror.InternalServerError()
}
@@ -243,7 +241,7 @@ func (r joinRoomReq) joinRoomUsingServers(
}
queryRes := roomserverAPI.QueryLatestEventsAndStateResponse{}
- event, err := common.BuildEvent(r.req.Context(), &eb, r.cfg, r.evTime, r.queryAPI, &queryRes)
+ event, err := common.BuildEvent(r.req.Context(), &eb, r.cfg, r.evTime, r.rsAPI, &queryRes)
if err == nil {
// If we have successfully built an event at this point then we can
// assert that the room is a local room, as BuildEvent was able to
diff --git a/clientapi/routing/membership.go b/clientapi/routing/membership.go
index dff194dd..9030f9f7 100644
--- a/clientapi/routing/membership.go
+++ b/clientapi/routing/membership.go
@@ -45,12 +45,12 @@ var errMissingUserID = errors.New("'user_id' must be supplied")
func SendMembership(
req *http.Request, accountDB accounts.Database, device *authtypes.Device,
roomID string, membership string, cfg *config.Dendrite,
- queryAPI roomserverAPI.RoomserverQueryAPI, asAPI appserviceAPI.AppServiceQueryAPI,
+ rsAPI roomserverAPI.RoomserverInternalAPI, asAPI appserviceAPI.AppServiceQueryAPI,
producer *producers.RoomserverProducer,
) util.JSONResponse {
verReq := api.QueryRoomVersionForRoomRequest{RoomID: roomID}
verRes := api.QueryRoomVersionForRoomResponse{}
- if err := queryAPI.QueryRoomVersionForRoom(req.Context(), &verReq, &verRes); err != nil {
+ if err := rsAPI.QueryRoomVersionForRoom(req.Context(), &verReq, &verRes); err != nil {
return util.JSONResponse{
Code: http.StatusBadRequest,
JSON: jsonerror.UnsupportedRoomVersion(err.Error()),
@@ -71,7 +71,7 @@ func SendMembership(
}
inviteStored, jsonErrResp := checkAndProcessThreepid(
- req, device, &body, cfg, queryAPI, accountDB, producer,
+ req, device, &body, cfg, rsAPI, accountDB, producer,
membership, roomID, evTime,
)
if jsonErrResp != nil {
@@ -89,7 +89,7 @@ func SendMembership(
}
event, err := buildMembershipEvent(
- req.Context(), body, accountDB, device, membership, roomID, cfg, evTime, queryAPI, asAPI,
+ req.Context(), body, accountDB, device, membership, roomID, cfg, evTime, rsAPI, asAPI,
)
if err == errMissingUserID {
return util.JSONResponse{
@@ -153,7 +153,7 @@ func buildMembershipEvent(
device *authtypes.Device,
membership, roomID string,
cfg *config.Dendrite, evTime time.Time,
- queryAPI roomserverAPI.RoomserverQueryAPI, asAPI appserviceAPI.AppServiceQueryAPI,
+ rsAPI roomserverAPI.RoomserverInternalAPI, asAPI appserviceAPI.AppServiceQueryAPI,
) (*gomatrixserverlib.Event, error) {
stateKey, reason, err := getMembershipStateKey(body, device, membership)
if err != nil {
@@ -188,7 +188,7 @@ func buildMembershipEvent(
return nil, err
}
- return common.BuildEvent(ctx, &builder, cfg, evTime, queryAPI, nil)
+ return common.BuildEvent(ctx, &builder, cfg, evTime, rsAPI, nil)
}
// loadProfile lookups the profile of a given user from the database and returns
@@ -248,7 +248,7 @@ func checkAndProcessThreepid(
device *authtypes.Device,
body *threepid.MembershipRequest,
cfg *config.Dendrite,
- queryAPI roomserverAPI.RoomserverQueryAPI,
+ rsAPI roomserverAPI.RoomserverInternalAPI,
accountDB accounts.Database,
producer *producers.RoomserverProducer,
membership, roomID string,
@@ -256,7 +256,7 @@ func checkAndProcessThreepid(
) (inviteStored bool, errRes *util.JSONResponse) {
inviteStored, err := threepid.CheckAndProcessInvite(
- req.Context(), device, body, cfg, queryAPI, accountDB, producer,
+ req.Context(), device, body, cfg, rsAPI, accountDB, producer,
membership, roomID, evTime,
)
if err == threepid.ErrMissingParameter {
diff --git a/clientapi/routing/memberships.go b/clientapi/routing/memberships.go
index 0b846e5e..f5d9bc4c 100644
--- a/clientapi/routing/memberships.go
+++ b/clientapi/routing/memberships.go
@@ -39,7 +39,7 @@ type getJoinedRoomsResponse struct {
func GetMemberships(
req *http.Request, device *authtypes.Device, roomID string, joinedOnly bool,
_ *config.Dendrite,
- queryAPI api.RoomserverQueryAPI,
+ rsAPI api.RoomserverInternalAPI,
) util.JSONResponse {
queryReq := api.QueryMembershipsForRoomRequest{
JoinedOnly: joinedOnly,
@@ -47,8 +47,8 @@ func GetMemberships(
Sender: device.UserID,
}
var queryRes api.QueryMembershipsForRoomResponse
- if err := queryAPI.QueryMembershipsForRoom(req.Context(), &queryReq, &queryRes); err != nil {
- util.GetLogger(req.Context()).WithError(err).Error("queryAPI.QueryMembershipsForRoom failed")
+ if err := rsAPI.QueryMembershipsForRoom(req.Context(), &queryReq, &queryRes); err != nil {
+ util.GetLogger(req.Context()).WithError(err).Error("rsAPI.QueryMembershipsForRoom failed")
return jsonerror.InternalServerError()
}
diff --git a/clientapi/routing/profile.go b/clientapi/routing/profile.go
index a51c55ea..b51533e4 100644
--- a/clientapi/routing/profile.go
+++ b/clientapi/routing/profile.go
@@ -94,7 +94,7 @@ func GetAvatarURL(
func SetAvatarURL(
req *http.Request, accountDB accounts.Database, device *authtypes.Device,
userID string, producer *producers.UserUpdateProducer, cfg *config.Dendrite,
- rsProducer *producers.RoomserverProducer, queryAPI api.RoomserverQueryAPI,
+ rsProducer *producers.RoomserverProducer, rsAPI api.RoomserverInternalAPI,
) util.JSONResponse {
if userID != device.UserID {
return util.JSONResponse{
@@ -154,7 +154,7 @@ func SetAvatarURL(
}
events, err := buildMembershipEvents(
- req.Context(), memberships, newProfile, userID, cfg, evTime, queryAPI,
+ req.Context(), memberships, newProfile, userID, cfg, evTime, rsAPI,
)
if err != nil {
util.GetLogger(req.Context()).WithError(err).Error("buildMembershipEvents failed")
@@ -208,7 +208,7 @@ func GetDisplayName(
func SetDisplayName(
req *http.Request, accountDB accounts.Database, device *authtypes.Device,
userID string, producer *producers.UserUpdateProducer, cfg *config.Dendrite,
- rsProducer *producers.RoomserverProducer, queryAPI api.RoomserverQueryAPI,
+ rsProducer *producers.RoomserverProducer, rsAPI api.RoomserverInternalAPI,
) util.JSONResponse {
if userID != device.UserID {
return util.JSONResponse{
@@ -268,7 +268,7 @@ func SetDisplayName(
}
events, err := buildMembershipEvents(
- req.Context(), memberships, newProfile, userID, cfg, evTime, queryAPI,
+ req.Context(), memberships, newProfile, userID, cfg, evTime, rsAPI,
)
if err != nil {
util.GetLogger(req.Context()).WithError(err).Error("buildMembershipEvents failed")
@@ -337,14 +337,14 @@ func buildMembershipEvents(
ctx context.Context,
memberships []authtypes.Membership,
newProfile authtypes.Profile, userID string, cfg *config.Dendrite,
- evTime time.Time, queryAPI api.RoomserverQueryAPI,
+ evTime time.Time, rsAPI api.RoomserverInternalAPI,
) ([]gomatrixserverlib.HeaderedEvent, error) {
evs := []gomatrixserverlib.HeaderedEvent{}
for _, membership := range memberships {
verReq := api.QueryRoomVersionForRoomRequest{RoomID: membership.RoomID}
verRes := api.QueryRoomVersionForRoomResponse{}
- if err := queryAPI.QueryRoomVersionForRoom(ctx, &verReq, &verRes); err != nil {
+ if err := rsAPI.QueryRoomVersionForRoom(ctx, &verReq, &verRes); err != nil {
return []gomatrixserverlib.HeaderedEvent{}, err
}
@@ -366,7 +366,7 @@ func buildMembershipEvents(
return nil, err
}
- event, err := common.BuildEvent(ctx, &builder, cfg, evTime, queryAPI, nil)
+ event, err := common.BuildEvent(ctx, &builder, cfg, evTime, rsAPI, nil)
if err != nil {
return nil, err
}
diff --git a/clientapi/routing/routing.go b/clientapi/routing/routing.go
index e62b5193..42b391de 100644
--- a/clientapi/routing/routing.go
+++ b/clientapi/routing/routing.go
@@ -49,8 +49,7 @@ const pathPrefixUnstable = "/_matrix/client/unstable"
func Setup(
apiMux *mux.Router, cfg *config.Dendrite,
producer *producers.RoomserverProducer,
- queryAPI roomserverAPI.RoomserverQueryAPI,
- aliasAPI roomserverAPI.RoomserverAliasAPI,
+ rsAPI roomserverAPI.RoomserverInternalAPI,
asAPI appserviceAPI.AppServiceQueryAPI,
accountDB accounts.Database,
deviceDB devices.Database,
@@ -91,7 +90,7 @@ func Setup(
r0mux.Handle("/createRoom",
common.MakeAuthAPI("createRoom", authData, func(req *http.Request, device *authtypes.Device) util.JSONResponse {
- return CreateRoom(req, device, cfg, producer, accountDB, aliasAPI, asAPI)
+ return CreateRoom(req, device, cfg, producer, accountDB, rsAPI, asAPI)
}),
).Methods(http.MethodPost, http.MethodOptions)
r0mux.Handle("/join/{roomIDOrAlias}",
@@ -102,7 +101,7 @@ func Setup(
}
return JoinRoomByIDOrAlias(
req, device, vars["roomIDOrAlias"], cfg, federation, producer,
- queryAPI, aliasAPI, federationSender, keyRing, accountDB,
+ rsAPI, federationSender, keyRing, accountDB,
)
}),
).Methods(http.MethodPost, http.MethodOptions)
@@ -118,7 +117,7 @@ func Setup(
if err != nil {
return util.ErrorResponse(err)
}
- return SendMembership(req, accountDB, device, vars["roomID"], vars["membership"], cfg, queryAPI, asAPI, producer)
+ return SendMembership(req, accountDB, device, vars["roomID"], vars["membership"], cfg, rsAPI, asAPI, producer)
}),
).Methods(http.MethodPost, http.MethodOptions)
r0mux.Handle("/rooms/{roomID}/send/{eventType}",
@@ -127,7 +126,7 @@ func Setup(
if err != nil {
return util.ErrorResponse(err)
}
- return SendEvent(req, device, vars["roomID"], vars["eventType"], nil, nil, cfg, queryAPI, producer, nil)
+ return SendEvent(req, device, vars["roomID"], vars["eventType"], nil, nil, cfg, rsAPI, producer, nil)
}),
).Methods(http.MethodPost, http.MethodOptions)
r0mux.Handle("/rooms/{roomID}/send/{eventType}/{txnID}",
@@ -138,7 +137,7 @@ func Setup(
}
txnID := vars["txnID"]
return SendEvent(req, device, vars["roomID"], vars["eventType"], &txnID,
- nil, cfg, queryAPI, producer, transactionsCache)
+ nil, cfg, rsAPI, producer, transactionsCache)
}),
).Methods(http.MethodPut, http.MethodOptions)
r0mux.Handle("/rooms/{roomID}/event/{eventID}",
@@ -147,7 +146,7 @@ func Setup(
if err != nil {
return util.ErrorResponse(err)
}
- return GetEvent(req, device, vars["roomID"], vars["eventID"], cfg, queryAPI, federation, keyRing)
+ return GetEvent(req, device, vars["roomID"], vars["eventID"], cfg, rsAPI, federation, keyRing)
}),
).Methods(http.MethodGet, http.MethodOptions)
@@ -156,7 +155,7 @@ func Setup(
if err != nil {
return util.ErrorResponse(err)
}
- return OnIncomingStateRequest(req.Context(), queryAPI, vars["roomID"])
+ return OnIncomingStateRequest(req.Context(), rsAPI, vars["roomID"])
})).Methods(http.MethodGet, http.MethodOptions)
r0mux.Handle("/rooms/{roomID}/state/{type}", common.MakeAuthAPI("room_state", authData, func(req *http.Request, device *authtypes.Device) util.JSONResponse {
@@ -164,7 +163,7 @@ func Setup(
if err != nil {
return util.ErrorResponse(err)
}
- return OnIncomingStateTypeRequest(req.Context(), queryAPI, vars["roomID"], vars["type"], "")
+ return OnIncomingStateTypeRequest(req.Context(), rsAPI, vars["roomID"], vars["type"], "")
})).Methods(http.MethodGet, http.MethodOptions)
r0mux.Handle("/rooms/{roomID}/state/{type}/{stateKey}", common.MakeAuthAPI("room_state", authData, func(req *http.Request, device *authtypes.Device) util.JSONResponse {
@@ -172,7 +171,7 @@ func Setup(
if err != nil {
return util.ErrorResponse(err)
}
- return OnIncomingStateTypeRequest(req.Context(), queryAPI, vars["roomID"], vars["type"], vars["stateKey"])
+ return OnIncomingStateTypeRequest(req.Context(), rsAPI, vars["roomID"], vars["type"], vars["stateKey"])
})).Methods(http.MethodGet, http.MethodOptions)
r0mux.Handle("/rooms/{roomID}/state/{eventType:[^/]+/?}",
@@ -187,7 +186,7 @@ func Setup(
if strings.HasSuffix(eventType, "/") {
eventType = eventType[:len(eventType)-1]
}
- return SendEvent(req, device, vars["roomID"], eventType, nil, &emptyString, cfg, queryAPI, producer, nil)
+ return SendEvent(req, device, vars["roomID"], eventType, nil, &emptyString, cfg, rsAPI, producer, nil)
}),
).Methods(http.MethodPut, http.MethodOptions)
@@ -198,7 +197,7 @@ func Setup(
return util.ErrorResponse(err)
}
stateKey := vars["stateKey"]
- return SendEvent(req, device, vars["roomID"], vars["eventType"], nil, &stateKey, cfg, queryAPI, producer, nil)
+ return SendEvent(req, device, vars["roomID"], vars["eventType"], nil, &stateKey, cfg, rsAPI, producer, nil)
}),
).Methods(http.MethodPut, http.MethodOptions)
@@ -220,7 +219,7 @@ func Setup(
if err != nil {
return util.ErrorResponse(err)
}
- return DirectoryRoom(req, vars["roomAlias"], federation, cfg, aliasAPI, federationSender)
+ return DirectoryRoom(req, vars["roomAlias"], federation, cfg, rsAPI, federationSender)
}),
).Methods(http.MethodGet, http.MethodOptions)
@@ -230,7 +229,7 @@ func Setup(
if err != nil {
return util.ErrorResponse(err)
}
- return SetLocalAlias(req, device, vars["roomAlias"], cfg, aliasAPI)
+ return SetLocalAlias(req, device, vars["roomAlias"], cfg, rsAPI)
}),
).Methods(http.MethodPut, http.MethodOptions)
@@ -240,7 +239,7 @@ func Setup(
if err != nil {
return util.ErrorResponse(err)
}
- return RemoveLocalAlias(req, device, vars["roomAlias"], aliasAPI)
+ return RemoveLocalAlias(req, device, vars["roomAlias"], rsAPI)
}),
).Methods(http.MethodDelete, http.MethodOptions)
@@ -354,7 +353,7 @@ func Setup(
if err != nil {
return util.ErrorResponse(err)
}
- return SetAvatarURL(req, accountDB, device, vars["userID"], userUpdateProducer, cfg, producer, queryAPI)
+ return SetAvatarURL(req, accountDB, device, vars["userID"], userUpdateProducer, cfg, producer, rsAPI)
}),
).Methods(http.MethodPut, http.MethodOptions)
// Browsers use the OPTIONS HTTP method to check if the CORS policy allows
@@ -376,7 +375,7 @@ func Setup(
if err != nil {
return util.ErrorResponse(err)
}
- return SetDisplayName(req, accountDB, device, vars["userID"], userUpdateProducer, cfg, producer, queryAPI)
+ return SetDisplayName(req, accountDB, device, vars["userID"], userUpdateProducer, cfg, producer, rsAPI)
}),
).Methods(http.MethodPut, http.MethodOptions)
// Browsers use the OPTIONS HTTP method to check if the CORS policy allows
@@ -489,7 +488,7 @@ func Setup(
if err != nil {
return util.ErrorResponse(err)
}
- return GetMemberships(req, device, vars["roomID"], false, cfg, queryAPI)
+ return GetMemberships(req, device, vars["roomID"], false, cfg, rsAPI)
}),
).Methods(http.MethodGet, http.MethodOptions)
@@ -499,7 +498,7 @@ func Setup(
if err != nil {
return util.ErrorResponse(err)
}
- return GetMemberships(req, device, vars["roomID"], true, cfg, queryAPI)
+ return GetMemberships(req, device, vars["roomID"], true, cfg, rsAPI)
}),
).Methods(http.MethodGet, http.MethodOptions)
@@ -603,7 +602,7 @@ func Setup(
r0mux.Handle("/capabilities",
common.MakeAuthAPI("capabilities", authData, func(req *http.Request, device *authtypes.Device) util.JSONResponse {
- return GetCapabilities(req, queryAPI)
+ return GetCapabilities(req, rsAPI)
}),
).Methods(http.MethodGet)
}
diff --git a/clientapi/routing/sendevent.go b/clientapi/routing/sendevent.go
index 5b2cd8ad..7280dcd9 100644
--- a/clientapi/routing/sendevent.go
+++ b/clientapi/routing/sendevent.go
@@ -45,13 +45,13 @@ func SendEvent(
device *authtypes.Device,
roomID, eventType string, txnID, stateKey *string,
cfg *config.Dendrite,
- queryAPI api.RoomserverQueryAPI,
+ rsAPI api.RoomserverInternalAPI,
producer *producers.RoomserverProducer,
txnCache *transactions.Cache,
) util.JSONResponse {
verReq := api.QueryRoomVersionForRoomRequest{RoomID: roomID}
verRes := api.QueryRoomVersionForRoomResponse{}
- if err := queryAPI.QueryRoomVersionForRoom(req.Context(), &verReq, &verRes); err != nil {
+ if err := rsAPI.QueryRoomVersionForRoom(req.Context(), &verReq, &verRes); err != nil {
return util.JSONResponse{
Code: http.StatusBadRequest,
JSON: jsonerror.UnsupportedRoomVersion(err.Error()),
@@ -65,7 +65,7 @@ func SendEvent(
}
}
- e, resErr := generateSendEvent(req, device, roomID, eventType, stateKey, cfg, queryAPI)
+ e, resErr := generateSendEvent(req, device, roomID, eventType, stateKey, cfg, rsAPI)
if resErr != nil {
return *resErr
}
@@ -115,7 +115,7 @@ func generateSendEvent(
device *authtypes.Device,
roomID, eventType string, stateKey *string,
cfg *config.Dendrite,
- queryAPI api.RoomserverQueryAPI,
+ rsAPI api.RoomserverInternalAPI,
) (*gomatrixserverlib.Event, *util.JSONResponse) {
// parse the incoming http request
userID := device.UserID
@@ -148,7 +148,7 @@ func generateSendEvent(
}
var queryRes api.QueryLatestEventsAndStateResponse
- e, err := common.BuildEvent(req.Context(), &builder, cfg, evTime, queryAPI, &queryRes)
+ e, err := common.BuildEvent(req.Context(), &builder, cfg, evTime, rsAPI, &queryRes)
if err == common.ErrRoomNoExists {
return nil, &util.JSONResponse{
Code: http.StatusNotFound,
diff --git a/clientapi/routing/state.go b/clientapi/routing/state.go
index c243eec0..e3e5bdb6 100644
--- a/clientapi/routing/state.go
+++ b/clientapi/routing/state.go
@@ -40,7 +40,7 @@ type stateEventInStateResp struct {
// TODO: Check if the user is in the room. If not, check if the room's history
// is publicly visible. Current behaviour is returning an empty array if the
// user cannot see the room's history.
-func OnIncomingStateRequest(ctx context.Context, queryAPI api.RoomserverQueryAPI, roomID string) util.JSONResponse {
+func OnIncomingStateRequest(ctx context.Context, rsAPI api.RoomserverInternalAPI, roomID string) util.JSONResponse {
// TODO(#287): Auth request and handle the case where the user has left (where
// we should return the state at the poin they left)
stateReq := api.QueryLatestEventsAndStateRequest{
@@ -48,7 +48,7 @@ func OnIncomingStateRequest(ctx context.Context, queryAPI api.RoomserverQueryAPI
}
stateRes := api.QueryLatestEventsAndStateResponse{}
- if err := queryAPI.QueryLatestEventsAndState(ctx, &stateReq, &stateRes); err != nil {
+ if err := rsAPI.QueryLatestEventsAndState(ctx, &stateReq, &stateRes); err != nil {
util.GetLogger(ctx).WithError(err).Error("queryAPI.QueryLatestEventsAndState failed")
return jsonerror.InternalServerError()
}
@@ -98,7 +98,7 @@ func OnIncomingStateRequest(ctx context.Context, queryAPI api.RoomserverQueryAPI
// /rooms/{roomID}/state/{type}/{statekey} request. It will look in current
// state to see if there is an event with that type and state key, if there
// is then (by default) we return the content, otherwise a 404.
-func OnIncomingStateTypeRequest(ctx context.Context, queryAPI api.RoomserverQueryAPI, roomID string, evType, stateKey string) util.JSONResponse {
+func OnIncomingStateTypeRequest(ctx context.Context, rsAPI api.RoomserverInternalAPI, roomID string, evType, stateKey string) util.JSONResponse {
// TODO(#287): Auth request and handle the case where the user has left (where
// we should return the state at the poin they left)
util.GetLogger(ctx).WithFields(log.Fields{
@@ -118,7 +118,7 @@ func OnIncomingStateTypeRequest(ctx context.Context, queryAPI api.RoomserverQuer
}
stateRes := api.QueryLatestEventsAndStateResponse{}
- if err := queryAPI.QueryLatestEventsAndState(ctx, &stateReq, &stateRes); err != nil {
+ if err := rsAPI.QueryLatestEventsAndState(ctx, &stateReq, &stateRes); err != nil {
util.GetLogger(ctx).WithError(err).Error("queryAPI.QueryLatestEventsAndState failed")
return jsonerror.InternalServerError()
}
diff --git a/clientapi/threepid/invites.go b/clientapi/threepid/invites.go
index e34e91b5..5e7e4f2b 100644
--- a/clientapi/threepid/invites.go
+++ b/clientapi/threepid/invites.go
@@ -87,7 +87,7 @@ var (
func CheckAndProcessInvite(
ctx context.Context,
device *authtypes.Device, body *MembershipRequest, cfg *config.Dendrite,
- queryAPI api.RoomserverQueryAPI, db accounts.Database,
+ rsAPI api.RoomserverInternalAPI, db accounts.Database,
producer *producers.RoomserverProducer, membership string, roomID string,
evTime time.Time,
) (inviteStoredOnIDServer bool, err error) {
@@ -112,7 +112,7 @@ func CheckAndProcessInvite(
// "m.room.third_party_invite" have to be emitted from the data in
// storeInviteRes.
err = emit3PIDInviteEvent(
- ctx, body, storeInviteRes, device, roomID, cfg, queryAPI, producer, evTime,
+ ctx, body, storeInviteRes, device, roomID, cfg, rsAPI, producer, evTime,
)
inviteStoredOnIDServer = err == nil
@@ -331,7 +331,7 @@ func emit3PIDInviteEvent(
ctx context.Context,
body *MembershipRequest, res *idServerStoreInviteResponse,
device *authtypes.Device, roomID string, cfg *config.Dendrite,
- queryAPI api.RoomserverQueryAPI, producer *producers.RoomserverProducer,
+ rsAPI api.RoomserverInternalAPI, producer *producers.RoomserverProducer,
evTime time.Time,
) error {
builder := &gomatrixserverlib.EventBuilder{
@@ -354,7 +354,7 @@ func emit3PIDInviteEvent(
}
queryRes := api.QueryLatestEventsAndStateResponse{}
- event, err := common.BuildEvent(ctx, builder, cfg, evTime, queryAPI, &queryRes)
+ event, err := common.BuildEvent(ctx, builder, cfg, evTime, rsAPI, &queryRes)
if err != nil {
return err
}