Documentation ¶
Index ¶
- Constants
- func GetUpdatedInviteRoomState(userIDForSender spec.UserIDForSender, inviteRoomState gjson.Result, ...) (spec.RawJSON, error)
- type ClientEvent
- type ClientEventFormat
- type ClientFederationFields
- type EventFilter
- type Filter
- type InviteRoomStateEvent
- type PrevEventRef
- type RoomEventFilter
- type RoomFilter
- type StateFilter
Constants ¶
const ( EventFormatClient = "client" EventFormatFederation = "federation" )
Variables ¶
This section is empty.
Functions ¶
func GetUpdatedInviteRoomState ¶
func GetUpdatedInviteRoomState(userIDForSender spec.UserIDForSender, inviteRoomState gjson.Result, event gomatrixserverlib.PDU, roomID spec.RoomID, eventFormat ClientEventFormat) (spec.RawJSON, error)
Types ¶
type ClientEvent ¶
type ClientEvent struct { Content spec.RawJSON `json:"content"` EventID string `json:"event_id,omitempty"` // EventID is omitted on receipt events OriginServerTS spec.Timestamp `json:"origin_server_ts,omitempty"` // OriginServerTS is omitted on receipt events RoomID string `json:"room_id,omitempty"` // RoomID is omitted on /sync responses Sender string `json:"sender,omitempty"` // Sender is omitted on receipt events SenderKey spec.SenderID `json:"sender_key,omitempty"` // The SenderKey for events in pseudo ID rooms StateKey *string `json:"state_key,omitempty"` Type string `json:"type"` Unsigned spec.RawJSON `json:"unsigned,omitempty"` Redacts string `json:"redacts,omitempty"` // Only sent to clients when `event_format` == `federation`. ClientFederationFields }
ClientEvent is an event which is fit for consumption by clients, in accordance with the specification.
func ToClientEvent ¶
func ToClientEvent(se gomatrixserverlib.PDU, format ClientEventFormat) *ClientEvent
ToClientEvent converts a single server event to a client event.
func ToClientEvents ¶
func ToClientEvents(serverEvs []gomatrixserverlib.PDU, format ClientEventFormat) []ClientEvent
ToClientEvents converts server events to client events.
type ClientEventFormat ¶
type ClientEventFormat int
const ( // FormatAll will include all client event keys FormatAll ClientEventFormat = iota // FormatSync will include only the event keys required by the /sync API. Notably, this // means the 'room_id' will be missing from the events. FormatSync // FormatSyncFederation will include all event keys normally included in federated events. // This allows clients to request federated formatted events via the /sync API. FormatSyncFederation )
type ClientFederationFields ¶
type ClientFederationFields struct { Depth int64 `json:"depth,omitempty"` PrevEvents []string `json:"prev_events,omitempty"` AuthEvents []string `json:"auth_events,omitempty"` Signatures spec.RawJSON `json:"signatures,omitempty"` Hashes spec.RawJSON `json:"hashes,omitempty"` }
ClientFederationFields extends a ClientEvent to contain the additional fields present in a federation event. Used when the client requests `event_format` of type `federation`.
type EventFilter ¶
type EventFilter struct { Limit int `json:"limit,omitempty"` NotSenders *[]string `json:"not_senders,omitempty"` NotTypes *[]string `json:"not_types,omitempty"` Senders *[]string `json:"senders,omitempty"` Types *[]string `json:"types,omitempty"` }
EventFilter is used to define filtering rules for events
func DefaultEventFilter ¶
func DefaultEventFilter() EventFilter
DefaultEventFilter returns the default event filter used by the Matrix server if no filter is provided in the request
type Filter ¶
type Filter struct { EventFields []string `json:"event_fields,omitempty"` EventFormat string `json:"event_format,omitempty"` Presence EventFilter `json:"presence,omitempty"` AccountData EventFilter `json:"account_data,omitempty"` Room RoomFilter `json:"room,omitempty"` }
Filter is used by clients to specify how the server should filter responses to e.g. sync requests Specified by: https://spec.matrix.org/v1.6/client-server-api/#filtering
func DefaultFilter ¶
func DefaultFilter() Filter
DefaultFilter returns the default filter used by the Matrix server if no filter is provided in the request
type InviteRoomStateEvent ¶
type PrevEventRef ¶
type PrevEventRef struct { PrevContent json.RawMessage `json:"prev_content"` ReplacesState string `json:"replaces_state"` PrevSenderID string `json:"prev_sender"` }
PrevEventRef represents a reference to a previous event in a state event upgrade
type RoomEventFilter ¶
type RoomEventFilter struct { Limit int `json:"limit,omitempty"` NotSenders *[]string `json:"not_senders,omitempty"` NotTypes *[]string `json:"not_types,omitempty"` Senders *[]string `json:"senders,omitempty"` Types *[]string `json:"types,omitempty"` LazyLoadMembers bool `json:"lazy_load_members,omitempty"` IncludeRedundantMembers bool `json:"include_redundant_members,omitempty"` NotRooms *[]string `json:"not_rooms,omitempty"` Rooms *[]string `json:"rooms,omitempty"` UnreadThreadNotifications bool `json:"unread_thread_notifications,omitempty"` ContainsURL *bool `json:"contains_url,omitempty"` }
RoomEventFilter is used to define filtering rules for events in rooms
func DefaultRoomEventFilter ¶
func DefaultRoomEventFilter() RoomEventFilter
DefaultRoomEventFilter returns the default room event filter used by the Matrix server if no filter is provided in the request
type RoomFilter ¶
type RoomFilter struct { NotRooms *[]string `json:"not_rooms,omitempty"` Rooms *[]string `json:"rooms,omitempty"` Ephemeral RoomEventFilter `json:"ephemeral,omitempty"` IncludeLeave bool `json:"include_leave,omitempty"` State StateFilter `json:"state,omitempty"` Timeline RoomEventFilter `json:"timeline,omitempty"` AccountData RoomEventFilter `json:"account_data,omitempty"` }
RoomFilter is used to define filtering rules for room-related events
type StateFilter ¶
type StateFilter struct { NotSenders *[]string `json:"not_senders,omitempty"` NotTypes *[]string `json:"not_types,omitempty"` Senders *[]string `json:"senders,omitempty"` Types *[]string `json:"types,omitempty"` LazyLoadMembers bool `json:"lazy_load_members,omitempty"` IncludeRedundantMembers bool `json:"include_redundant_members,omitempty"` NotRooms *[]string `json:"not_rooms,omitempty"` Rooms *[]string `json:"rooms,omitempty"` Limit int `json:"limit,omitempty"` UnreadThreadNotifications bool `json:"unread_thread_notifications,omitempty"` ContainsURL *bool `json:"contains_url,omitempty"` }
StateFilter is used to define filtering rules for state events
func DefaultStateFilter ¶
func DefaultStateFilter() StateFilter
DefaultStateFilter returns the default state event filter used by the Matrix server if no filter is provided in the request