mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-17 03:43:11 -06:00
Wire AS API into roomserver again
This commit is contained in:
parent
17b7a91c1c
commit
b99f31ae6b
|
|
@ -38,6 +38,7 @@ func main() {
|
||||||
asQuery := base.CreateHTTPAppServiceAPIs()
|
asQuery := base.CreateHTTPAppServiceAPIs()
|
||||||
rsAPI := base.CreateHTTPRoomserverAPIs()
|
rsAPI := base.CreateHTTPRoomserverAPIs()
|
||||||
fsAPI := base.CreateHTTPFederationSenderAPIs()
|
fsAPI := base.CreateHTTPFederationSenderAPIs()
|
||||||
|
rsAPI.SetFederationSenderAPI(fsAPI)
|
||||||
eduInputAPI := eduserver.SetupEDUServerComponent(base, cache.New())
|
eduInputAPI := eduserver.SetupEDUServerComponent(base, cache.New())
|
||||||
|
|
||||||
clientapi.SetupClientAPIComponent(
|
clientapi.SetupClientAPIComponent(
|
||||||
|
|
|
||||||
|
|
@ -160,6 +160,7 @@ func main() {
|
||||||
fsAPI := federationsender.SetupFederationSenderComponent(
|
fsAPI := federationsender.SetupFederationSenderComponent(
|
||||||
&base.Base, federation, rsAPI, &keyRing,
|
&base.Base, federation, rsAPI, &keyRing,
|
||||||
)
|
)
|
||||||
|
rsAPI.SetFederationSenderAPI(fsAPI)
|
||||||
|
|
||||||
clientapi.SetupClientAPIComponent(
|
clientapi.SetupClientAPIComponent(
|
||||||
&base.Base, deviceDB, accountDB,
|
&base.Base, deviceDB, accountDB,
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ func main() {
|
||||||
|
|
||||||
rsAPI := base.CreateHTTPRoomserverAPIs()
|
rsAPI := base.CreateHTTPRoomserverAPIs()
|
||||||
asAPI := base.CreateHTTPAppServiceAPIs()
|
asAPI := base.CreateHTTPAppServiceAPIs()
|
||||||
|
rsAPI.SetFederationSenderAPI(fsAPI)
|
||||||
eduInputAPI := eduserver.SetupEDUServerComponent(base, cache.New())
|
eduInputAPI := eduserver.SetupEDUServerComponent(base, cache.New())
|
||||||
eduProducer := producers.NewEDUServerProducer(eduInputAPI)
|
eduProducer := producers.NewEDUServerProducer(eduInputAPI)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,12 +28,11 @@ func main() {
|
||||||
federation := base.CreateFederationClient()
|
federation := base.CreateFederationClient()
|
||||||
keyDB := base.CreateKeyDB()
|
keyDB := base.CreateKeyDB()
|
||||||
keyRing := keydb.CreateKeyRing(federation.Client, keyDB, cfg.Matrix.KeyPerspectives)
|
keyRing := keydb.CreateKeyRing(federation.Client, keyDB, cfg.Matrix.KeyPerspectives)
|
||||||
|
|
||||||
rsAPI := base.CreateHTTPRoomserverAPIs()
|
rsAPI := base.CreateHTTPRoomserverAPIs()
|
||||||
|
fsAPI := federationsender.SetupFederationSenderComponent(
|
||||||
federationsender.SetupFederationSenderComponent(
|
|
||||||
base, federation, rsAPI, &keyRing,
|
base, federation, rsAPI, &keyRing,
|
||||||
)
|
)
|
||||||
|
rsAPI.SetFederationSenderAPI(fsAPI)
|
||||||
|
|
||||||
base.SetupAndServeHTTP(string(base.Cfg.Bind.FederationSender), string(base.Cfg.Listen.FederationSender))
|
base.SetupAndServeHTTP(string(base.Cfg.Bind.FederationSender), string(base.Cfg.Listen.FederationSender))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,10 @@ func main() {
|
||||||
|
|
||||||
deviceDB := base.CreateDeviceDB()
|
deviceDB := base.CreateDeviceDB()
|
||||||
|
|
||||||
|
fsAPI := base.CreateHTTPFederationSenderAPIs()
|
||||||
rsAPI := base.CreateHTTPRoomserverAPIs()
|
rsAPI := base.CreateHTTPRoomserverAPIs()
|
||||||
|
rsAPI.SetFederationSenderAPI(fsAPI)
|
||||||
|
|
||||||
publicRoomsDB, err := storage.NewPublicRoomsServerDatabase(string(base.Cfg.Database.PublicRoomsAPI))
|
publicRoomsDB, err := storage.NewPublicRoomsServerDatabase(string(base.Cfg.Database.PublicRoomsAPI))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.WithError(err).Panicf("failed to connect to public rooms db")
|
logrus.WithError(err).Panicf("failed to connect to public rooms db")
|
||||||
|
|
|
||||||
|
|
@ -30,8 +30,9 @@ func main() {
|
||||||
federation := base.CreateFederationClient()
|
federation := base.CreateFederationClient()
|
||||||
keyRing := keydb.CreateKeyRing(federation.Client, keyDB, cfg.Matrix.KeyPerspectives)
|
keyRing := keydb.CreateKeyRing(federation.Client, keyDB, cfg.Matrix.KeyPerspectives)
|
||||||
|
|
||||||
|
asAPI := base.CreateHTTPAppServiceAPIs()
|
||||||
fsAPI := base.CreateHTTPFederationSenderAPIs()
|
fsAPI := base.CreateHTTPFederationSenderAPIs()
|
||||||
rsAPI := roomserver.SetupRoomServerComponent(base, keyRing, federation, nil) // TODO: AS API here
|
rsAPI := roomserver.SetupRoomServerComponent(base, keyRing, federation, asAPI) // TODO: AS API here
|
||||||
rsAPI.SetFederationSenderAPI(fsAPI)
|
rsAPI.SetFederationSenderAPI(fsAPI)
|
||||||
|
|
||||||
base.SetupAndServeHTTP(string(base.Cfg.Bind.RoomServer), string(base.Cfg.Listen.RoomServer))
|
base.SetupAndServeHTTP(string(base.Cfg.Bind.RoomServer), string(base.Cfg.Listen.RoomServer))
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,9 @@ func main() {
|
||||||
accountDB := base.CreateAccountsDB()
|
accountDB := base.CreateAccountsDB()
|
||||||
federation := base.CreateFederationClient()
|
federation := base.CreateFederationClient()
|
||||||
|
|
||||||
|
fsAPI := base.CreateHTTPFederationSenderAPIs()
|
||||||
rsAPI := base.CreateHTTPRoomserverAPIs()
|
rsAPI := base.CreateHTTPRoomserverAPIs()
|
||||||
|
rsAPI.SetFederationSenderAPI(fsAPI)
|
||||||
|
|
||||||
syncapi.SetupSyncAPIComponent(base, deviceDB, accountDB, rsAPI, federation, cfg)
|
syncapi.SetupSyncAPIComponent(base, deviceDB, accountDB, rsAPI, federation, cfg)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,9 @@ import (
|
||||||
// RoomserverInputAPI is used to write events to the room server.
|
// RoomserverInputAPI is used to write events to the room server.
|
||||||
type RoomserverInternalAPI interface {
|
type RoomserverInternalAPI interface {
|
||||||
// needed to avoid chicken and egg scenario when setting up the
|
// needed to avoid chicken and egg scenario when setting up the
|
||||||
// interdependencies between the roomserver and the FS input API
|
// interdependencies between the roomserver and other input APIs
|
||||||
SetFederationSenderAPI(fsInputAPI fsAPI.FederationSenderInternalAPI)
|
SetFederationSenderAPI(fsAPI fsAPI.FederationSenderInternalAPI)
|
||||||
|
|
||||||
InputRoomEvents(
|
InputRoomEvents(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
request *InputRoomEventsRequest,
|
request *InputRoomEventsRequest,
|
||||||
|
|
|
||||||
|
|
@ -5,15 +5,13 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
"github.com/matrix-org/dendrite/common/caching"
|
"github.com/matrix-org/dendrite/common/caching"
|
||||||
fsAPI "github.com/matrix-org/dendrite/federationsender/api"
|
fsInputAPI "github.com/matrix-org/dendrite/federationsender/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
type httpRoomserverInternalAPI struct {
|
type httpRoomserverInternalAPI struct {
|
||||||
roomserverURL string
|
roomserverURL string
|
||||||
httpClient *http.Client
|
httpClient *http.Client
|
||||||
// The federation sender API allows us to send federation
|
fsAPI fsInputAPI.FederationSenderInternalAPI
|
||||||
// requests from the new perform input requests, still TODO.
|
|
||||||
fsInputAPI fsAPI.FederationSenderInternalAPI
|
|
||||||
immutableCache caching.ImmutableCache
|
immutableCache caching.ImmutableCache
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -29,9 +27,8 @@ func NewRoomserverInternalAPIHTTP(
|
||||||
return nil, errors.New("NewRoomserverInternalAPIHTTP: httpClient is <nil>")
|
return nil, errors.New("NewRoomserverInternalAPIHTTP: httpClient is <nil>")
|
||||||
}
|
}
|
||||||
return &httpRoomserverInternalAPI{
|
return &httpRoomserverInternalAPI{
|
||||||
roomserverURL: roomserverURL,
|
roomserverURL: roomserverURL,
|
||||||
httpClient: httpClient,
|
httpClient: httpClient,
|
||||||
//fsInputAPI: fsInputAPI,
|
|
||||||
immutableCache: immutableCache,
|
immutableCache: immutableCache,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
@ -39,6 +36,6 @@ func NewRoomserverInternalAPIHTTP(
|
||||||
// SetFederationSenderInputAPI passes in a federation sender input API reference
|
// SetFederationSenderInputAPI passes in a federation sender input API reference
|
||||||
// so that we can avoid the chicken-and-egg problem of both the roomserver input API
|
// so that we can avoid the chicken-and-egg problem of both the roomserver input API
|
||||||
// and the federation sender input API being interdependent.
|
// and the federation sender input API being interdependent.
|
||||||
func (h *httpRoomserverInternalAPI) SetFederationSenderAPI(fsInputAPI fsAPI.FederationSenderInternalAPI) {
|
func (h *httpRoomserverInternalAPI) SetFederationSenderAPI(fsAPI fsInputAPI.FederationSenderInternalAPI) {
|
||||||
h.fsInputAPI = fsInputAPI
|
h.fsAPI = fsAPI
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue