routing

package
v0.9.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 12, 2022 License: Apache-2.0 Imports: 34 Imported by: 4

Documentation

Index

Constants

View Source
const (
	// Event was passed to the roomserver
	MetricsOutcomeOK = "ok"
	// Event failed to be processed
	MetricsOutcomeFail = "fail"
	// Event failed auth checks
	MetricsOutcomeRejected = "rejected"
	// Terminated the transaction
	MetricsOutcomeFatal = "fatal"
	// The event has missing auth_events we need to fetch
	MetricsWorkMissingAuthEvents = "missing_auth_events"
	// No work had to be done as we had all prev/auth events
	MetricsWorkDirect = "direct"
	// The event has missing prev_events we need to call /g_m_e for
	MetricsWorkMissingPrevEvents = "missing_prev_events"
)

Variables

This section is empty.

Functions

func CreateInvitesFrom3PIDInvites

func CreateInvitesFrom3PIDInvites(
	req *http.Request, rsAPI api.FederationRoomserverAPI,
	cfg *config.FederationAPI,
	federation federationAPI.FederationClient,
	userAPI userapi.FederationUserAPI,
) util.JSONResponse

CreateInvitesFrom3PIDInvites implements POST /_matrix/federation/v1/3pid/onbind

func ErrorIfLocalServerNotInRoom added in v0.8.3

func ErrorIfLocalServerNotInRoom(
	ctx context.Context,
	rsAPI api.FederationRoomserverAPI,
	roomID string,
) *util.JSONResponse

func ExchangeThirdPartyInvite

func ExchangeThirdPartyInvite(
	httpReq *http.Request,
	request *gomatrixserverlib.FederationRequest,
	roomID string,
	rsAPI api.FederationRoomserverAPI,
	cfg *config.FederationAPI,
	federation federationAPI.FederationClient,
) util.JSONResponse

ExchangeThirdPartyInvite implements PUT /_matrix/federation/v1/exchange_third_party_invite/{roomID}

func GetEvent

GetEvent returns the requested event

func GetEventAuth

func GetEventAuth(
	ctx context.Context,
	request *gomatrixserverlib.FederationRequest,
	rsAPI api.FederationRoomserverAPI,
	roomID string,
	eventID string,
) util.JSONResponse

GetEventAuth returns event auth for the roomID and eventID

func GetMissingEvents

func GetMissingEvents(
	httpReq *http.Request,
	request *gomatrixserverlib.FederationRequest,
	rsAPI api.FederationRoomserverAPI,
	roomID string,
) util.JSONResponse

GetMissingEvents returns missing events between earliest_events & latest_events. Events are fetched from room DAG starting from latest_events until we reach earliest_events or the limit.

func GetOpenIDUserInfo added in v0.4.0

func GetOpenIDUserInfo(
	httpReq *http.Request,
	userAPI userapi.FederationUserAPI,
) util.JSONResponse

GetOpenIDUserInfo implements GET /_matrix/federation/v1/openid/userinfo

func GetPostPublicRooms

func GetPostPublicRooms(req *http.Request, rsAPI roomserverAPI.FederationRoomserverAPI) util.JSONResponse

GetPostPublicRooms implements GET and POST /publicRooms

func GetProfile

func GetProfile(
	httpReq *http.Request,
	userAPI userapi.FederationUserAPI,
	cfg *config.FederationAPI,
) util.JSONResponse

GetProfile implements GET /_matrix/federation/v1/query/profile

func GetState

GetState returns state events & auth events for the roomID, eventID

func GetStateIDs

GetStateIDs returns state event IDs & auth event IDs for the roomID, eventID

func GetUserDevices

func GetUserDevices(
	req *http.Request,
	keyAPI keyapi.FederationKeyAPI,
	userID string,
) util.JSONResponse

GetUserDevices for the given user id

func InviteV1

InviteV1 implements /_matrix/federation/v1/invite/{roomID}/{eventID}

func InviteV2

InviteV2 implements /_matrix/federation/v2/invite/{roomID}/{eventID}

func LocalKeys

func LocalKeys(cfg *config.FederationAPI) util.JSONResponse

LocalKeys returns the local keys for the server. See https://matrix.org/docs/spec/server_server/unstable.html#publishing-keys

func MakeFedAPI added in v0.8.3

MakeFedAPI makes an http.Handler that checks matrix federation authentication.

func MakeJoin

func MakeJoin(
	httpReq *http.Request,
	request *gomatrixserverlib.FederationRequest,
	cfg *config.FederationAPI,
	rsAPI api.FederationRoomserverAPI,
	roomID, userID string,
	remoteVersions []gomatrixserverlib.RoomVersion,
) util.JSONResponse

MakeJoin implements the /make_join API

func MakeLeave

func MakeLeave(
	httpReq *http.Request,
	request *gomatrixserverlib.FederationRequest,
	cfg *config.FederationAPI,
	rsAPI api.FederationRoomserverAPI,
	roomID, userID string,
) util.JSONResponse

MakeLeave implements the /make_leave API

func Peek added in v0.3.7

func Peek(
	httpReq *http.Request,
	request *gomatrixserverlib.FederationRequest,
	cfg *config.FederationAPI,
	rsAPI api.FederationRoomserverAPI,
	roomID, peekID string,
	remoteVersions []gomatrixserverlib.RoomVersion,
) util.JSONResponse

Peek implements the SS /peek API, handling inbound peeks

func QueryDeviceKeys

func QueryDeviceKeys(
	httpReq *http.Request, request *gomatrixserverlib.FederationRequest, keyAPI api.FederationKeyAPI, thisServer gomatrixserverlib.ServerName,
) util.JSONResponse

QueryDeviceKeys returns device keys for users on this server. https://matrix.org/docs/spec/server_server/latest#post-matrix-federation-v1-user-keys-query

func RoomAliasToID

RoomAliasToID converts the queried alias into a room ID and returns it

func SendJoin

SendJoin implements the /send_join API The make-join send-join dance makes much more sense as a single flow so the cyclomatic complexity is high: nolint:gocyclo

func SendLeave

SendLeave implements the /send_leave API

func Setup

Setup registers HTTP handlers with the given ServeMux. The provided publicAPIMux MUST have `UseEncodedPath()` enabled or else routes will incorrectly path unescape twice (once from the router, once from MakeFedAPI). We need to have this enabled so we can decode paths like foo/bar%2Fbaz as [foo, bar/baz] - by default it will decode to [foo, bar, baz]

Due to Setup being used to call many other functions, a gocyclo nolint is applied: nolint: gocyclo

func Version

func Version() util.JSONResponse

Version returns the server version

Types

type FederationWakeups added in v0.8.3

type FederationWakeups struct {
	FsAPI *fedInternal.FederationInternalAPI
	// contains filtered or unexported fields
}

func (*FederationWakeups) Wakeup added in v0.8.3

type PublicRoomReq

type PublicRoomReq struct {
	Since  string `json:"since,omitempty"`
	Limit  int16  `json:"limit,omitempty"`
	Filter filter `json:"filter,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL