2020-05-01 11:48:17 +02:00
|
|
|
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
|
|
|
|
|
2020-05-04 14:53:47 +02:00
|
|
|
PerformJoin(
|
|
|
|
ctx context.Context,
|
|
|
|
req *PerformJoinRequest,
|
|
|
|
res *PerformJoinResponse,
|
|
|
|
) error
|
|
|
|
|
2020-05-04 19:34:09 +02:00
|
|
|
PerformLeave(
|
|
|
|
ctx context.Context,
|
|
|
|
req *PerformLeaveRequest,
|
|
|
|
res *PerformLeaveResponse,
|
|
|
|
) error
|
|
|
|
|
2020-05-01 11:48:17 +02:00
|
|
|
// 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
|
|
|
|
}
|