aboutsummaryrefslogtreecommitdiff
path: root/roomserver/api/api.go
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 /roomserver/api/api.go
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 'roomserver/api/api.go')
-rw-r--r--roomserver/api/api.go141
1 files changed, 141 insertions, 0 deletions
diff --git a/roomserver/api/api.go b/roomserver/api/api.go
new file mode 100644
index 00000000..c12dbddd
--- /dev/null
+++ b/roomserver/api/api.go
@@ -0,0 +1,141 @@
+package api
+
+import (
+ "context"
+
+ fsAPI "github.com/matrix-org/dendrite/federationsender/api"
+)
+
+// RoomserverInputAPI is used to write events to the room server.
+type RoomserverInternalAPI interface {
+ // needed to avoid chicken and egg scenario when setting up the
+ // interdependencies between the roomserver and other input APIs
+ SetFederationSenderAPI(fsAPI fsAPI.FederationSenderInternalAPI)
+
+ InputRoomEvents(
+ ctx context.Context,
+ request *InputRoomEventsRequest,
+ response *InputRoomEventsResponse,
+ ) error
+
+ // Query the latest events and state for a room from the room server.
+ QueryLatestEventsAndState(
+ ctx context.Context,
+ request *QueryLatestEventsAndStateRequest,
+ response *QueryLatestEventsAndStateResponse,
+ ) error
+
+ // Query the state after a list of events in a room from the room server.
+ QueryStateAfterEvents(
+ ctx context.Context,
+ request *QueryStateAfterEventsRequest,
+ response *QueryStateAfterEventsResponse,
+ ) error
+
+ // Query a list of events by event ID.
+ QueryEventsByID(
+ ctx context.Context,
+ request *QueryEventsByIDRequest,
+ response *QueryEventsByIDResponse,
+ ) error
+
+ // Query the membership event for an user for a room.
+ QueryMembershipForUser(
+ ctx context.Context,
+ request *QueryMembershipForUserRequest,
+ response *QueryMembershipForUserResponse,
+ ) error
+
+ // Query a list of membership events for a room
+ QueryMembershipsForRoom(
+ ctx context.Context,
+ request *QueryMembershipsForRoomRequest,
+ response *QueryMembershipsForRoomResponse,
+ ) error
+
+ // Query a list of invite event senders for a user in a room.
+ QueryInvitesForUser(
+ ctx context.Context,
+ request *QueryInvitesForUserRequest,
+ response *QueryInvitesForUserResponse,
+ ) error
+
+ // Query whether a server is allowed to see an event
+ QueryServerAllowedToSeeEvent(
+ ctx context.Context,
+ request *QueryServerAllowedToSeeEventRequest,
+ response *QueryServerAllowedToSeeEventResponse,
+ ) error
+
+ // Query missing events for a room from roomserver
+ QueryMissingEvents(
+ ctx context.Context,
+ request *QueryMissingEventsRequest,
+ response *QueryMissingEventsResponse,
+ ) error
+
+ // Query to get state and auth chain for a (potentially hypothetical) event.
+ // Takes lists of PrevEventIDs and AuthEventsIDs and uses them to calculate
+ // the state and auth chain to return.
+ QueryStateAndAuthChain(
+ ctx context.Context,
+ request *QueryStateAndAuthChainRequest,
+ response *QueryStateAndAuthChainResponse,
+ ) error
+
+ // Query a given amount (or less) of events prior to a given set of events.
+ QueryBackfill(
+ ctx context.Context,
+ request *QueryBackfillRequest,
+ response *QueryBackfillResponse,
+ ) error
+
+ // Asks for the default room version as preferred by the server.
+ QueryRoomVersionCapabilities(
+ ctx context.Context,
+ request *QueryRoomVersionCapabilitiesRequest,
+ response *QueryRoomVersionCapabilitiesResponse,
+ ) error
+
+ // Asks for the room version for a given room.
+ QueryRoomVersionForRoom(
+ ctx context.Context,
+ request *QueryRoomVersionForRoomRequest,
+ response *QueryRoomVersionForRoomResponse,
+ ) error
+
+ // Set a room alias
+ SetRoomAlias(
+ ctx context.Context,
+ req *SetRoomAliasRequest,
+ response *SetRoomAliasResponse,
+ ) error
+
+ // Get the room ID for an alias
+ GetRoomIDForAlias(
+ ctx context.Context,
+ req *GetRoomIDForAliasRequest,
+ response *GetRoomIDForAliasResponse,
+ ) error
+
+ // Get all known aliases for a room ID
+ GetAliasesForRoomID(
+ ctx context.Context,
+ req *GetAliasesForRoomIDRequest,
+ response *GetAliasesForRoomIDResponse,
+ ) error
+
+ // Get the user ID of the creator of an alias
+ GetCreatorIDForAlias(
+ ctx context.Context,
+ req *GetCreatorIDForAliasRequest,
+ response *GetCreatorIDForAliasResponse,
+ ) error
+
+ // Remove a room alias
+ RemoveRoomAlias(
+ ctx context.Context,
+ req *RemoveRoomAliasRequest,
+ response *RemoveRoomAliasResponse,
+ ) error
+}