routing

package
v0.0.0-...-811715e Latest Latest
Warning

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

Go to latest
Published: Nov 29, 2022 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Context

func Context(
	req *http.Request, device *userapi.Device,
	rsAPI roomserver.SyncRoomserverAPI,
	syncDB storage.Database,
	roomID, eventID string,
	lazyLoadCache caching.LazyLoadCache,
) util.JSONResponse

func GetEvent

func GetEvent(
	req *http.Request,
	device *userapi.Device,
	roomID string,
	eventID string,
	cfg *config.SyncAPI,
	syncDB storage.Database,
	rsAPI api.SyncRoomserverAPI,
) util.JSONResponse

GetEvent implements

GET /_matrix/client/r0/rooms/{roomId}/event/{eventId}

https://spec.matrix.org/v1.4/client-server-api/#get_matrixclientv3roomsroomideventeventid

func GetFilter

func GetFilter(
	req *http.Request, device *api.Device, syncDB storage.Database, userID string, filterID string,
) util.JSONResponse

GetFilter implements GET /_matrix/client/r0/user/{userId}/filter/{filterId}

func GetMemberships

func GetMemberships(
	req *http.Request, device *userapi.Device, roomID string,
	syncDB storage.Database, rsAPI api.SyncRoomserverAPI,
	joinedOnly bool, membership, notMembership *string, at string,
) util.JSONResponse

GetMemberships implements

GET /rooms/{roomId}/members
GET /rooms/{roomId}/joined_members

func OnIncomingMessagesRequest

func OnIncomingMessagesRequest(
	req *http.Request, db storage.Database, roomID string, device *userapi.Device,
	rsAPI api.SyncRoomserverAPI,
	cfg *config.SyncAPI,
	srp *sync.RequestPool,
	lazyLoadCache caching.LazyLoadCache,
) util.JSONResponse

OnIncomingMessagesRequest implements the /messages endpoint from the client-server API. See: https://matrix.org/docs/spec/client_server/latest.html#get-matrix-client-r0-rooms-roomid-messages

func PutFilter

func PutFilter(
	req *http.Request, device *api.Device, syncDB storage.Database, userID string,
) util.JSONResponse

PutFilter implements

POST /_matrix/client/r0/user/{userId}/filter

func Relations

func Relations(
	req *http.Request, device *userapi.Device,
	syncDB storage.Database,
	rsAPI api.SyncRoomserverAPI,
	roomID, eventID, relType, eventType string,
) util.JSONResponse

nolint:gocyclo

func Search(req *http.Request, device *api.Device, syncDB storage.Database, fts *fulltext.Search, from *string) util.JSONResponse

nolint:gocyclo

func Setup

func Setup(
	csMux *mux.Router, srp *sync.RequestPool, syncDB storage.Database,
	userAPI userapi.SyncUserAPI,
	rsAPI api.SyncRoomserverAPI,
	cfg *config.SyncAPI,
	lazyLoadCache caching.LazyLoadCache,
	fts *fulltext.Search,
)

Setup configures the given mux with sync-server listeners

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

Types

type ContextRespsonse

type ContextRespsonse struct {
	End          string                          `json:"end"`
	Event        *gomatrixserverlib.ClientEvent  `json:"event,omitempty"`
	EventsAfter  []gomatrixserverlib.ClientEvent `json:"events_after,omitempty"`
	EventsBefore []gomatrixserverlib.ClientEvent `json:"events_before,omitempty"`
	Start        string                          `json:"start"`
	State        []gomatrixserverlib.ClientEvent `json:"state,omitempty"`
}

type Groups

type Groups struct {
	RoomID map[string]RoomResult `json:"room_id"`
}

type ProfileInfo

type ProfileInfo struct {
	AvatarURL   string `json:"avatar_url"`
	DisplayName string `json:"display_name"`
}

type RelationsResponse

type RelationsResponse struct {
	Chunk     []gomatrixserverlib.ClientEvent `json:"chunk"`
	NextBatch string                          `json:"next_batch,omitempty"`
	PrevBatch string                          `json:"prev_batch,omitempty"`
}

type Result

type Result struct {
	Context SearchContextResponse         `json:"context"`
	Rank    float64                       `json:"rank"`
	Result  gomatrixserverlib.ClientEvent `json:"result"`
}

type RoomEvents

type RoomEvents struct {
	Count      int                                        `json:"count"`
	Groups     Groups                                     `json:"groups"`
	Highlights []string                                   `json:"highlights"`
	NextBatch  *string                                    `json:"next_batch,omitempty"`
	Results    []Result                                   `json:"results"`
	State      map[string][]gomatrixserverlib.ClientEvent `json:"state,omitempty"`
}

type RoomResult

type RoomResult struct {
	NextBatch *string  `json:"next_batch,omitempty"`
	Order     int      `json:"order"`
	Results   []string `json:"results"`
}

type SearchCategories

type SearchCategories struct {
	RoomEvents RoomEvents `json:"room_events"`
}

type SearchContextResponse

type SearchContextResponse struct {
	End          string                          `json:"end"`
	EventsAfter  []gomatrixserverlib.ClientEvent `json:"events_after"`
	EventsBefore []gomatrixserverlib.ClientEvent `json:"events_before"`
	Start        string                          `json:"start"`
	ProfileInfo  map[string]ProfileInfo          `json:"profile_info"`
}

type SearchRequest

type SearchRequest struct {
	SearchCategories struct {
		RoomEvents struct {
			EventContext struct {
				AfterLimit     int  `json:"after_limit,omitempty"`
				BeforeLimit    int  `json:"before_limit,omitempty"`
				IncludeProfile bool `json:"include_profile,omitempty"`
			} `json:"event_context"`
			Filter    gomatrixserverlib.RoomEventFilter `json:"filter"`
			Groupings struct {
				GroupBy []struct {
					Key string `json:"key"`
				} `json:"group_by"`
			} `json:"groupings"`
			IncludeState bool     `json:"include_state"`
			Keys         []string `json:"keys"`
			OrderBy      string   `json:"order_by"`
			SearchTerm   string   `json:"search_term"`
		} `json:"room_events"`
	} `json:"search_categories"`
}

type SearchResponse

type SearchResponse struct {
	SearchCategories SearchCategories `json:"search_categories"`
}

Jump to

Keyboard shortcuts

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