mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-03-24 02:24:27 -05:00
43 lines
1.9 KiB
Go
43 lines
1.9 KiB
Go
// Package api provides the types that are used to communicate with the roomserver.
|
|
package api
|
|
|
|
const (
|
|
// KindOutlier event fall outside the contiguous event graph.
|
|
// We do not have the state for these events.
|
|
// These events are state events used to authenticate other events.
|
|
// They can become part of the contiguous event graph via backfill.
|
|
KindOutlier = 1
|
|
// KindJoin event start a new contiguous event graph. The event must be a
|
|
// m.room.member event joining this server to the room. This must come with
|
|
// the state at the event. If the event is contiguous with the existing
|
|
// graph for the room then it is treated as a normal new event.
|
|
KindJoin = 2
|
|
// KindNew event extend the contiguous graph going forwards.
|
|
// They usually don't need state, but may include state if the
|
|
// there was a new event that references an event that we don't
|
|
// have a copy of.
|
|
KindNew = 3
|
|
// KindBackfill event extend the contiguous graph going backwards.
|
|
// They always have state.
|
|
KindBackfill = 4
|
|
)
|
|
|
|
// InputRoomEvent is a matrix room event to add to the room server database.
|
|
// TODO: Implement UnmarshalJSON/MarshalJSON in a way that does something sensible with the event JSON.
|
|
type InputRoomEvent struct {
|
|
// Whether this event is new, backfilled or an outlier.
|
|
// This controls how the event is processed.
|
|
Kind int
|
|
// The event JSON for the event to add.
|
|
Event []byte
|
|
// List of state event IDs that authenticate this event.
|
|
// These are likely derived from the "auth_events" JSON key of the event.
|
|
// But can be different because the "auth_events" key can be incomplete or wrong.
|
|
// For example many matrix events forget to reference the m.room.create event even though it is needed for auth.
|
|
// (since synapse allows this to happen we have to allow it as well.)
|
|
AuthEventIDs []string
|
|
// Optional list of state event IDs forming the state before this event.
|
|
// These state events must have already been persisted.
|
|
StateEventIDs []string
|
|
}
|