aboutsummaryrefslogtreecommitdiff
path: root/userapi
diff options
context:
space:
mode:
authorkegsay <kegan@matrix.org>2022-05-05 19:30:38 +0100
committerGitHub <noreply@github.com>2022-05-05 19:30:38 +0100
commit9957752a9d60d4519cc0b7e8b9b40a781240c27d (patch)
tree80de96398e63ea04a334802212f828d983a98b6e /userapi
parente4da04e75b4cba1c9afb63b9973444e1da12021b (diff)
Define component interfaces based on consumers (2/2) (#2425)
* convert remaining interfaces * Tidy up the userapi interfaces
Diffstat (limited to 'userapi')
-rw-r--r--userapi/api/api.go38
-rw-r--r--userapi/consumers/syncapi_streamevent.go6
-rw-r--r--userapi/internal/api.go2
-rw-r--r--userapi/userapi.go4
4 files changed, 27 insertions, 23 deletions
diff --git a/userapi/api/api.go b/userapi/api/api.go
index 928b91e6..dc8c12b7 100644
--- a/userapi/api/api.go
+++ b/userapi/api/api.go
@@ -26,34 +26,33 @@ import (
// UserInternalAPI is the internal API for information about users and devices.
type UserInternalAPI interface {
- UserProfileAPI
- QueryAcccessTokenAPI
-
AppserviceUserAPI
SyncUserAPI
ClientUserAPI
MediaUserAPI
+ FederationUserAPI
- QueryOpenIDToken(ctx context.Context, req *QueryOpenIDTokenRequest, res *QueryOpenIDTokenResponse) error
-}
-
-type QueryAcccessTokenAPI interface {
- QueryAccessToken(ctx context.Context, req *QueryAccessTokenRequest, res *QueryAccessTokenResponse) error
-}
-
-type UserLoginAPI interface {
- QueryAccountByPassword(ctx context.Context, req *QueryAccountByPasswordRequest, res *QueryAccountByPasswordResponse) error
+ QuerySearchProfilesAPI // used by p2p demos
}
+// api functions required by the appservice api
type AppserviceUserAPI interface {
PerformAccountCreation(ctx context.Context, req *PerformAccountCreationRequest, res *PerformAccountCreationResponse) error
PerformDeviceCreation(ctx context.Context, req *PerformDeviceCreationRequest, res *PerformDeviceCreationResponse) error
}
+// api functions required by the media api
type MediaUserAPI interface {
QueryAcccessTokenAPI
}
+// api functions required by the federation api
+type FederationUserAPI interface {
+ QueryOpenIDToken(ctx context.Context, req *QueryOpenIDTokenRequest, res *QueryOpenIDTokenResponse) error
+ QueryProfile(ctx context.Context, req *QueryProfileRequest, res *QueryProfileResponse) error
+}
+
+// api functions required by the sync api
type SyncUserAPI interface {
QueryAcccessTokenAPI
QueryAccountData(ctx context.Context, req *QueryAccountDataRequest, res *QueryAccountDataResponse) error
@@ -63,6 +62,7 @@ type SyncUserAPI interface {
QueryDeviceInfos(ctx context.Context, req *QueryDeviceInfosRequest, res *QueryDeviceInfosResponse) error
}
+// api functions required by the client api
type ClientUserAPI interface {
QueryAcccessTokenAPI
LoginTokenInternalAPI
@@ -97,14 +97,18 @@ type ClientUserAPI interface {
PerformSaveThreePIDAssociation(ctx context.Context, req *PerformSaveThreePIDAssociationRequest, res *struct{}) error
}
-type UserDirectoryProvider interface {
+// custom api functions required by pinecone / p2p demos
+type QuerySearchProfilesAPI interface {
QuerySearchProfiles(ctx context.Context, req *QuerySearchProfilesRequest, res *QuerySearchProfilesResponse) error
}
-// UserProfileAPI provides functions for getting user profiles
-type UserProfileAPI interface {
- QueryProfile(ctx context.Context, req *QueryProfileRequest, res *QueryProfileResponse) error
- QuerySearchProfiles(ctx context.Context, req *QuerySearchProfilesRequest, res *QuerySearchProfilesResponse) error
+// common function for creating authenticated endpoints (used in client/media/sync api)
+type QueryAcccessTokenAPI interface {
+ QueryAccessToken(ctx context.Context, req *QueryAccessTokenRequest, res *QueryAccessTokenResponse) error
+}
+
+type UserLoginAPI interface {
+ QueryAccountByPassword(ctx context.Context, req *QueryAccountByPasswordRequest, res *QueryAccountByPasswordResponse) error
}
type PerformKeyBackupRequest struct {
diff --git a/userapi/consumers/syncapi_streamevent.go b/userapi/consumers/syncapi_streamevent.go
index 9ef7b508..7807c763 100644
--- a/userapi/consumers/syncapi_streamevent.go
+++ b/userapi/consumers/syncapi_streamevent.go
@@ -29,7 +29,7 @@ type OutputStreamEventConsumer struct {
ctx context.Context
cfg *config.UserAPI
userAPI api.UserInternalAPI
- rsAPI rsapi.RoomserverInternalAPI
+ rsAPI rsapi.UserRoomserverAPI
jetstream nats.JetStreamContext
durable string
db storage.Database
@@ -45,7 +45,7 @@ func NewOutputStreamEventConsumer(
store storage.Database,
pgClient pushgateway.Client,
userAPI api.UserInternalAPI,
- rsAPI rsapi.RoomserverInternalAPI,
+ rsAPI rsapi.UserRoomserverAPI,
syncProducer *producers.SyncAPI,
) *OutputStreamEventConsumer {
return &OutputStreamEventConsumer{
@@ -455,7 +455,7 @@ func (s *OutputStreamEventConsumer) evaluatePushRules(ctx context.Context, event
type ruleSetEvalContext struct {
ctx context.Context
- rsAPI rsapi.RoomserverInternalAPI
+ rsAPI rsapi.UserRoomserverAPI
mem *localMembership
roomID string
roomSize int
diff --git a/userapi/internal/api.go b/userapi/internal/api.go
index 394bfa22..9d2f63c7 100644
--- a/userapi/internal/api.go
+++ b/userapi/internal/api.go
@@ -48,7 +48,7 @@ type UserInternalAPI struct {
ServerName gomatrixserverlib.ServerName
// AppServices is the list of all registered AS
AppServices []config.ApplicationService
- KeyAPI keyapi.KeyInternalAPI
+ KeyAPI keyapi.UserKeyAPI
}
func (a *UserInternalAPI) InputAccountData(ctx context.Context, req *api.InputAccountDataRequest, res *api.InputAccountDataResponse) error {
diff --git a/userapi/userapi.go b/userapi/userapi.go
index 5b11665d..03a46807 100644
--- a/userapi/userapi.go
+++ b/userapi/userapi.go
@@ -44,8 +44,8 @@ func AddInternalRoutes(router *mux.Router, intAPI api.UserInternalAPI) {
// can call functions directly on the returned API or via an HTTP interface using AddInternalRoutes.
func NewInternalAPI(
base *base.BaseDendrite, cfg *config.UserAPI,
- appServices []config.ApplicationService, keyAPI keyapi.KeyInternalAPI,
- rsAPI rsapi.RoomserverInternalAPI, pgClient pushgateway.Client,
+ appServices []config.ApplicationService, keyAPI keyapi.UserKeyAPI,
+ rsAPI rsapi.UserRoomserverAPI, pgClient pushgateway.Client,
) api.UserInternalAPI {
js, _ := jetstream.Prepare(base.ProcessContext, &cfg.Matrix.JetStream)