mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-20 05:13:11 -06:00
Split out adding HTTP routes from making internal APIs for clarity
This commit is contained in:
parent
67784ecb56
commit
3a150ce35f
|
|
@ -147,7 +147,7 @@ func main() {
|
|||
rsAPI := roomserver.SetupRoomServerComponent(
|
||||
&base.Base, keyRing, federation,
|
||||
)
|
||||
eduInputAPI := eduserver.SetupEDUServerComponent(
|
||||
eduInputAPI := eduserver.NewInternalAPI(
|
||||
&base.Base, cache.New(), deviceDB,
|
||||
)
|
||||
asAPI := appservice.SetupAppServiceAPIComponent(
|
||||
|
|
@ -164,7 +164,7 @@ func main() {
|
|||
eduInputAPI, asAPI, transactions.New(), fsAPI,
|
||||
)
|
||||
eduProducer := producers.NewEDUServerProducer(eduInputAPI)
|
||||
federationapi.SetupFederationAPIComponent(&base.Base, accountDB, deviceDB, federation, keyRing, rsAPI, asAPI, fsAPI, eduProducer)
|
||||
federationapi.AddRoutes(&base.Base, accountDB, deviceDB, federation, keyRing, rsAPI, asAPI, fsAPI, eduProducer)
|
||||
mediaapi.SetupMediaAPIComponent(&base.Base, deviceDB)
|
||||
publicRoomsDB, err := storage.NewPublicRoomsServerDatabaseWithPubSub(string(base.Base.Cfg.Database.PublicRoomsAPI), base.LibP2PPubsub, cfg.Matrix.ServerName)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -31,7 +31,8 @@ func main() {
|
|||
}()
|
||||
deviceDB := base.CreateDeviceDB()
|
||||
|
||||
eduserver.SetupEDUServerComponent(base, cache.New(), deviceDB)
|
||||
intAPI := eduserver.NewInternalAPI(base, cache.New(), deviceDB)
|
||||
eduserver.AddRoutes(base.InternalAPIMux, intAPI)
|
||||
|
||||
base.SetupAndServeHTTP(string(base.Cfg.Bind.EDUServer), string(base.Cfg.Listen.EDUServer))
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ func main() {
|
|||
// TODO: this isn't a producer
|
||||
eduProducer := producers.NewEDUServerProducer(base.EDUServerClient())
|
||||
|
||||
federationapi.SetupFederationAPIComponent(
|
||||
federationapi.AddRoutes(
|
||||
base, accountDB, deviceDB, federation, keyRing,
|
||||
rsAPI, asAPI, fsAPI, eduProducer,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -86,10 +86,11 @@ func main() {
|
|||
rsAPI = base.RoomserverHTTPClient()
|
||||
}
|
||||
|
||||
eduInputAPI := eduserver.SetupEDUServerComponent(
|
||||
eduInputAPI := eduserver.NewInternalAPI(
|
||||
base, cache.New(), deviceDB,
|
||||
)
|
||||
if base.UseHTTPAPIs {
|
||||
eduserver.AddRoutes(base.InternalAPIMux, eduInputAPI)
|
||||
eduInputAPI = base.EDUServerClient()
|
||||
}
|
||||
|
||||
|
|
@ -118,7 +119,7 @@ func main() {
|
|||
base, deviceDB, accountDB,
|
||||
)
|
||||
eduProducer := producers.NewEDUServerProducer(eduInputAPI)
|
||||
federationapi.SetupFederationAPIComponent(base, accountDB, deviceDB, federation, keyRing, rsAPI, asAPI, fsAPI, eduProducer)
|
||||
federationapi.AddRoutes(base, accountDB, deviceDB, federation, keyRing, rsAPI, asAPI, fsAPI, eduProducer)
|
||||
mediaapi.SetupMediaAPIComponent(base, deviceDB)
|
||||
publicRoomsDB, err := storage.NewPublicRoomsServerDatabase(string(base.Cfg.Database.PublicRoomsAPI), base.Cfg.DbProperties(), cfg.Matrix.ServerName)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -207,7 +207,7 @@ func main() {
|
|||
}
|
||||
|
||||
rsAPI := roomserver.SetupRoomServerComponent(base, keyRing, federation)
|
||||
eduInputAPI := eduserver.SetupEDUServerComponent(base, cache.New(), deviceDB)
|
||||
eduInputAPI := eduserver.NewInternalAPI(base, cache.New(), deviceDB)
|
||||
asQuery := appservice.SetupAppServiceAPIComponent(
|
||||
base, accountDB, deviceDB, federation, rsAPI, transactions.New(),
|
||||
)
|
||||
|
|
@ -221,7 +221,7 @@ func main() {
|
|||
eduInputAPI, asQuery, transactions.New(), fedSenderAPI,
|
||||
)
|
||||
eduProducer := producers.NewEDUServerProducer(eduInputAPI)
|
||||
federationapi.SetupFederationAPIComponent(base, accountDB, deviceDB, federation, &keyRing, rsAPI, asQuery, fedSenderAPI, eduProducer)
|
||||
federationapi.AddRoutes(base, accountDB, deviceDB, federation, &keyRing, rsAPI, asQuery, fedSenderAPI, eduProducer)
|
||||
mediaapi.SetupMediaAPIComponent(base, deviceDB)
|
||||
publicRoomsDB, err := storage.NewPublicRoomsServerDatabase(string(base.Cfg.Database.PublicRoomsAPI), cfg.Matrix.ServerName)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
package eduserver
|
||||
|
||||
import (
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/matrix-org/dendrite/clientapi/auth/storage/devices"
|
||||
"github.com/matrix-org/dendrite/eduserver/api"
|
||||
"github.com/matrix-org/dendrite/eduserver/cache"
|
||||
|
|
@ -25,16 +26,20 @@ import (
|
|||
"github.com/matrix-org/dendrite/internal/basecomponent"
|
||||
)
|
||||
|
||||
// SetupEDUServerComponent sets up and registers HTTP handlers for the
|
||||
// EDUServer component. Returns instances of the various roomserver APIs,
|
||||
// allowing other components running in the same process to hit the query the
|
||||
// APIs directly instead of having to use HTTP.
|
||||
func SetupEDUServerComponent(
|
||||
// AddRoutes registers HTTP handlers for the internal API. Invokes functions
|
||||
// on the given input API.
|
||||
func AddRoutes(internalMux *mux.Router, inputAPI api.EDUServerInputAPI) {
|
||||
inthttp.AddRoutes(inputAPI, internalMux)
|
||||
}
|
||||
|
||||
// NewInternalAPI returns a concerete implementation of the internal API. Callers
|
||||
// can call functions directly on the returned API or via an HTTP interface using AddRoutes.
|
||||
func NewInternalAPI(
|
||||
base *basecomponent.BaseDendrite,
|
||||
eduCache *cache.EDUCache,
|
||||
deviceDB devices.Database,
|
||||
) api.EDUServerInputAPI {
|
||||
inputAPI := &input.EDUServerInputAPI{
|
||||
return &input.EDUServerInputAPI{
|
||||
Cache: eduCache,
|
||||
DeviceDB: deviceDB,
|
||||
Producer: base.KafkaProducer,
|
||||
|
|
@ -42,8 +47,4 @@ func SetupEDUServerComponent(
|
|||
OutputSendToDeviceEventTopic: string(base.Cfg.Kafka.Topics.OutputSendToDeviceEvent),
|
||||
ServerName: base.Cfg.Matrix.ServerName,
|
||||
}
|
||||
|
||||
inthttp.AddRoutes(inputAPI, base.InternalAPIMux)
|
||||
|
||||
return inputAPI
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,9 +28,8 @@ import (
|
|||
"github.com/matrix-org/gomatrixserverlib"
|
||||
)
|
||||
|
||||
// SetupFederationAPIComponent sets up and registers HTTP handlers for the
|
||||
// FederationAPI component.
|
||||
func SetupFederationAPIComponent(
|
||||
// AddRoutes sets up and registers HTTP handlers on the base API muxes for the FederationAPI component.
|
||||
func AddRoutes(
|
||||
base *basecomponent.BaseDendrite,
|
||||
accountsDB accounts.Database,
|
||||
deviceDB devices.Database,
|
||||
|
|
|
|||
Loading…
Reference in a new issue