shared

package
v0.0.0-...-2154053 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Database

type Database struct {
	DB                  *sql.DB
	Cache               caching.RoomServerCaches
	Writer              sqlutil.Writer
	EventsTable         tables.Events
	EventJSONTable      tables.EventJSON
	EventTypesTable     tables.EventTypes
	EventStateKeysTable tables.EventStateKeys
	RoomsTable          tables.Rooms
	StateSnapshotTable  tables.StateSnapshot
	StateBlockTable     tables.StateBlock
	RoomAliasesTable    tables.RoomAliases
	PrevEventsTable     tables.PreviousEvents
	InvitesTable        tables.Invites
	MembershipTable     tables.Membership
	PublishedTable      tables.Published
	RedactionsTable     tables.Redactions
	GetRoomUpdaterFn    func(ctx context.Context, roomInfo *types.RoomInfo) (*RoomUpdater, error)
}

func (*Database) AddState

func (d *Database) AddState(
	ctx context.Context,
	roomNID types.RoomNID,
	stateBlockNIDs []types.StateBlockNID,
	state []types.StateEntry,
) (stateNID types.StateSnapshotNID, err error)

func (*Database) EventIDs

func (d *Database) EventIDs(
	ctx context.Context, eventNIDs []types.EventNID,
) (map[types.EventNID]string, error)

func (*Database) EventNIDs

func (d *Database) EventNIDs(
	ctx context.Context, eventIDs []string,
) (map[string]types.EventNID, error)

func (*Database) EventStateKeyNIDs

func (d *Database) EventStateKeyNIDs(
	ctx context.Context, eventStateKeys []string,
) (map[string]types.EventStateKeyNID, error)

func (*Database) EventStateKeys

func (d *Database) EventStateKeys(
	ctx context.Context, eventStateKeyNIDs []types.EventStateKeyNID,
) (map[types.EventStateKeyNID]string, error)

func (*Database) EventTypeNIDs

func (d *Database) EventTypeNIDs(
	ctx context.Context, eventTypes []string,
) (map[string]types.EventTypeNID, error)

func (*Database) Events

func (d *Database) Events(
	ctx context.Context, eventNIDs []types.EventNID,
) ([]types.Event, error)

func (*Database) EventsFromIDs

func (d *Database) EventsFromIDs(ctx context.Context, eventIDs []string) ([]types.Event, error)

func (*Database) ForgetRoom

func (d *Database) ForgetRoom(ctx context.Context, userID, roomID string, forget bool) error

ForgetRoom sets a users room to forgotten

func (*Database) GetAliasesForRoomID

func (d *Database) GetAliasesForRoomID(ctx context.Context, roomID string) ([]string, error)

func (*Database) GetBulkStateContent

func (d *Database) GetBulkStateContent(ctx context.Context, roomIDs []string, tuples []gomatrixserverlib.StateKeyTuple, allowWildcards bool) ([]tables.StrippedEvent, error)

GetBulkStateContent returns all state events which match a given room ID and a given state key tuple. Both must be satisfied for a match. If a tuple has the StateKey of '*' and allowWildcards=true then all state events with the EventType should be returned.

func (*Database) GetCreatorIDForAlias

func (d *Database) GetCreatorIDForAlias(
	ctx context.Context, alias string,
) (string, error)

func (*Database) GetHistoryVisibilityState

func (d *Database) GetHistoryVisibilityState(ctx context.Context, roomInfo *types.RoomInfo, eventID string, domain string) ([]*gomatrixserverlib.Event, error)

func (*Database) GetInvitesForUser

func (d *Database) GetInvitesForUser(
	ctx context.Context,
	roomNID types.RoomNID,
	targetUserNID types.EventStateKeyNID,
) (senderUserIDs []types.EventStateKeyNID, eventIDs []string, err error)

func (*Database) GetKnownRooms

func (d *Database) GetKnownRooms(ctx context.Context) ([]string, error)

GetKnownRooms returns a list of all rooms we know about.

func (*Database) GetKnownUsers

func (d *Database) GetKnownUsers(ctx context.Context, userID, searchString string, limit int) ([]string, error)

GetKnownUsers searches all users that userID knows about.

func (*Database) GetLocalServerInRoom

func (d *Database) GetLocalServerInRoom(ctx context.Context, roomNID types.RoomNID) (bool, error)

GetLocalServerInRoom returns true if we think we're in a given room or false otherwise.

func (*Database) GetMembership

func (d *Database) GetMembership(ctx context.Context, roomNID types.RoomNID, requestSenderUserID string) (membershipEventNID types.EventNID, stillInRoom, isRoomforgotten bool, err error)

func (*Database) GetMembershipEventNIDsForRoom

func (d *Database) GetMembershipEventNIDsForRoom(
	ctx context.Context, roomNID types.RoomNID, joinOnly bool, localOnly bool,
) ([]types.EventNID, error)

func (*Database) GetPublishedRoom

func (d *Database) GetPublishedRoom(ctx context.Context, roomID string) (bool, error)

func (*Database) GetPublishedRooms

func (d *Database) GetPublishedRooms(ctx context.Context) ([]string, error)

func (*Database) GetRoomIDForAlias

func (d *Database) GetRoomIDForAlias(ctx context.Context, alias string) (string, error)

func (*Database) GetRoomUpdater

func (d *Database) GetRoomUpdater(
	ctx context.Context, roomInfo *types.RoomInfo,
) (*RoomUpdater, error)

func (*Database) GetRoomsByMembership

func (d *Database) GetRoomsByMembership(ctx context.Context, userID, membership string) ([]string, error)

GetRoomsByMembership returns a list of room IDs matching the provided membership and user ID (as state_key).

func (*Database) GetServerInRoom

func (d *Database) GetServerInRoom(ctx context.Context, roomNID types.RoomNID, serverName gomatrixserverlib.ServerName) (bool, error)

GetServerInRoom returns true if we think a server is in a given room or false otherwise.

func (*Database) GetStateEvent

func (d *Database) GetStateEvent(ctx context.Context, roomID, evType, stateKey string) (*gomatrixserverlib.HeaderedEvent, error)

GetStateEvent returns the current state event of a given type for a given room with a given state key If no event could be found, returns nil If there was an issue during the retrieval, returns an error

func (*Database) GetStateEventsWithEventType

func (d *Database) GetStateEventsWithEventType(ctx context.Context, roomID, evType string) ([]*gomatrixserverlib.HeaderedEvent, error)

Same as GetStateEvent but returns all matching state events with this event type. Returns no error if there are no events with this event type.

func (*Database) JoinedUsersSetInRooms

func (d *Database) JoinedUsersSetInRooms(ctx context.Context, roomIDs, userIDs []string) (map[string]int, error)

JoinedUsersSetInRooms returns a map of how many times the given users appear in the specified rooms.

func (*Database) LatestEventIDs

func (d *Database) LatestEventIDs(
	ctx context.Context, roomNID types.RoomNID,
) (references []gomatrixserverlib.EventReference, currentStateSnapshotNID types.StateSnapshotNID, depth int64, err error)

func (*Database) MembershipUpdater

func (d *Database) MembershipUpdater(
	ctx context.Context, roomID, targetUserID string,
	targetLocal bool, roomVersion gomatrixserverlib.RoomVersion,
) (*MembershipUpdater, error)

func (*Database) MissingAuthPrevEvents

func (d *Database) MissingAuthPrevEvents(
	ctx context.Context, e *gomatrixserverlib.Event,
) (missingAuth, missingPrev []string, err error)

func (*Database) PublishRoom

func (d *Database) PublishRoom(ctx context.Context, roomID string, publish bool) error

func (*Database) RemoveRoomAlias

func (d *Database) RemoveRoomAlias(ctx context.Context, alias string) error

func (*Database) RoomInfo

func (d *Database) RoomInfo(ctx context.Context, roomID string) (*types.RoomInfo, error)

func (*Database) SetRoomAlias

func (d *Database) SetRoomAlias(ctx context.Context, alias string, roomID string, creatorUserID string) error

func (*Database) SetState

func (d *Database) SetState(
	ctx context.Context, eventNID types.EventNID, stateNID types.StateSnapshotNID,
) error

func (*Database) SnapshotNIDFromEventID

func (d *Database) SnapshotNIDFromEventID(
	ctx context.Context, eventID string,
) (types.StateSnapshotNID, error)

func (*Database) StateAtEventIDs

func (d *Database) StateAtEventIDs(
	ctx context.Context, eventIDs []string,
) ([]types.StateAtEvent, error)

func (*Database) StateBlockNIDs

func (d *Database) StateBlockNIDs(
	ctx context.Context, stateNIDs []types.StateSnapshotNID,
) ([]types.StateBlockNIDList, error)

func (*Database) StateEntries

func (d *Database) StateEntries(
	ctx context.Context, stateBlockNIDs []types.StateBlockNID,
) ([]types.StateEntryList, error)

func (*Database) StateEntriesForEventIDs

func (d *Database) StateEntriesForEventIDs(
	ctx context.Context, eventIDs []string,
) ([]types.StateEntry, error)

func (*Database) StateEntriesForTuples

func (d *Database) StateEntriesForTuples(
	ctx context.Context,
	stateBlockNIDs []types.StateBlockNID,
	stateKeyTuples []types.StateKeyTuple,
) ([]types.StateEntryList, error)

func (*Database) StoreEvent

func (d *Database) StoreEvent(
	ctx context.Context, event *gomatrixserverlib.Event,
	authEventNIDs []types.EventNID, isRejected bool,
) (types.EventNID, types.RoomNID, types.StateAtEvent, *gomatrixserverlib.Event, string, error)

func (*Database) SupportsConcurrentRoomInputs

func (d *Database) SupportsConcurrentRoomInputs() bool

type MembershipUpdater

type MembershipUpdater struct {
	// contains filtered or unexported fields
}

func NewMembershipUpdater

func NewMembershipUpdater(
	ctx context.Context, d *Database, txn *sql.Tx, roomID, targetUserID string,
	targetLocal bool, roomVersion gomatrixserverlib.RoomVersion,
) (*MembershipUpdater, error)

func (*MembershipUpdater) Commit

func (t *MembershipUpdater) Commit() error

Commit implements types.Transaction

func (*MembershipUpdater) Delete

func (u *MembershipUpdater) Delete() error

func (*MembershipUpdater) IsInvite

func (u *MembershipUpdater) IsInvite() bool

IsInvite implements types.MembershipUpdater

func (*MembershipUpdater) IsJoin

func (u *MembershipUpdater) IsJoin() bool

IsJoin implements types.MembershipUpdater

func (*MembershipUpdater) IsKnock

func (u *MembershipUpdater) IsKnock() bool

IsKnock implements types.MembershipUpdater

func (*MembershipUpdater) IsLeave

func (u *MembershipUpdater) IsLeave() bool

IsLeave implements types.MembershipUpdater

func (*MembershipUpdater) Rollback

func (t *MembershipUpdater) Rollback() error

Rollback implements types.Transaction

func (*MembershipUpdater) Update

func (u *MembershipUpdater) Update(newMembership tables.MembershipState, event *types.Event) (bool, []string, error)

type RoomUpdater

type RoomUpdater struct {
	// contains filtered or unexported fields
}

func NewRoomUpdater

func NewRoomUpdater(ctx context.Context, d *Database, txn *sql.Tx, roomInfo *types.RoomInfo) (*RoomUpdater, error)

func (*RoomUpdater) AddState

func (u *RoomUpdater) AddState(
	ctx context.Context,
	roomNID types.RoomNID,
	stateBlockNIDs []types.StateBlockNID,
	state []types.StateEntry,
) (stateNID types.StateSnapshotNID, err error)

func (*RoomUpdater) Commit

func (u *RoomUpdater) Commit() error

Implements sqlutil.Transaction

func (*RoomUpdater) CurrentStateSnapshotNID

func (u *RoomUpdater) CurrentStateSnapshotNID() types.StateSnapshotNID

CurrentStateSnapshotNID implements types.RoomRecentEventsUpdater

func (*RoomUpdater) EventIDs

func (u *RoomUpdater) EventIDs(
	ctx context.Context, eventNIDs []types.EventNID,
) (map[types.EventNID]string, error)

func (*RoomUpdater) EventStateKeyNIDs

func (u *RoomUpdater) EventStateKeyNIDs(
	ctx context.Context, eventStateKeys []string,
) (map[string]types.EventStateKeyNID, error)

func (*RoomUpdater) EventTypeNIDs

func (u *RoomUpdater) EventTypeNIDs(
	ctx context.Context, eventTypes []string,
) (map[string]types.EventTypeNID, error)

func (*RoomUpdater) Events

func (u *RoomUpdater) Events(
	ctx context.Context, eventNIDs []types.EventNID,
) ([]types.Event, error)

func (*RoomUpdater) EventsFromIDs

func (u *RoomUpdater) EventsFromIDs(ctx context.Context, eventIDs []string) ([]types.Event, error)

func (*RoomUpdater) HasEventBeenSent

func (u *RoomUpdater) HasEventBeenSent(eventNID types.EventNID) (bool, error)

HasEventBeenSent implements types.RoomRecentEventsUpdater

func (*RoomUpdater) IsReferenced

func (u *RoomUpdater) IsReferenced(eventReference gomatrixserverlib.EventReference) (bool, error)

IsReferenced implements types.RoomRecentEventsUpdater

func (*RoomUpdater) LastEventIDSent

func (u *RoomUpdater) LastEventIDSent() string

LastEventIDSent implements types.RoomRecentEventsUpdater

func (*RoomUpdater) LatestEvents

func (u *RoomUpdater) LatestEvents() []types.StateAtEventAndReference

LatestEvents implements types.RoomRecentEventsUpdater

func (*RoomUpdater) MarkEventAsSent

func (u *RoomUpdater) MarkEventAsSent(eventNID types.EventNID) error

MarkEventAsSent implements types.RoomRecentEventsUpdater

func (*RoomUpdater) MembershipUpdater

func (u *RoomUpdater) MembershipUpdater(targetUserNID types.EventStateKeyNID, targetLocal bool) (*MembershipUpdater, error)

func (*RoomUpdater) Rollback

func (u *RoomUpdater) Rollback() error

Implements sqlutil.Transaction

func (*RoomUpdater) RoomExists

func (u *RoomUpdater) RoomExists() bool

RoomExists returns true if the room exists and false otherwise.

func (*RoomUpdater) RoomInfo

func (u *RoomUpdater) RoomInfo(ctx context.Context, roomID string) (*types.RoomInfo, error)

func (*RoomUpdater) RoomVersion

func (u *RoomUpdater) RoomVersion() (version gomatrixserverlib.RoomVersion)

RoomVersion implements types.RoomRecentEventsUpdater

func (*RoomUpdater) SetLatestEvents

func (u *RoomUpdater) SetLatestEvents(
	roomNID types.RoomNID, latest []types.StateAtEventAndReference, lastEventNIDSent types.EventNID,
	currentStateSnapshotNID types.StateSnapshotNID,
) error

SetLatestEvents implements types.RoomRecentEventsUpdater

func (*RoomUpdater) SetState

func (u *RoomUpdater) SetState(
	ctx context.Context, eventNID types.EventNID, stateNID types.StateSnapshotNID,
) error

func (*RoomUpdater) SnapshotNIDFromEventID

func (u *RoomUpdater) SnapshotNIDFromEventID(
	ctx context.Context, eventID string,
) (types.StateSnapshotNID, error)

func (*RoomUpdater) StateAtEventIDs

func (u *RoomUpdater) StateAtEventIDs(
	ctx context.Context, eventIDs []string,
) ([]types.StateAtEvent, error)

func (*RoomUpdater) StateBlockNIDs

func (u *RoomUpdater) StateBlockNIDs(
	ctx context.Context, stateNIDs []types.StateSnapshotNID,
) ([]types.StateBlockNIDList, error)

func (*RoomUpdater) StateEntries

func (u *RoomUpdater) StateEntries(
	ctx context.Context, stateBlockNIDs []types.StateBlockNID,
) ([]types.StateEntryList, error)

func (*RoomUpdater) StateEntriesForTuples

func (u *RoomUpdater) StateEntriesForTuples(
	ctx context.Context,
	stateBlockNIDs []types.StateBlockNID,
	stateKeyTuples []types.StateKeyTuple,
) ([]types.StateEntryList, error)

func (*RoomUpdater) StorePreviousEvents

func (u *RoomUpdater) StorePreviousEvents(eventNID types.EventNID, previousEventReferences []gomatrixserverlib.EventReference) error

StorePreviousEvents implements types.RoomRecentEventsUpdater - This must be called from a Writer

func (*RoomUpdater) UnsentEventsFromIDs

func (u *RoomUpdater) UnsentEventsFromIDs(ctx context.Context, eventIDs []string) ([]types.Event, error)

type StatementList

type StatementList []struct {
	Statement **sql.Stmt
	SQL       string
}

StatementList is a list of SQL statements to prepare and a pointer to where to store the resulting prepared statement.

func (StatementList) Prepare

func (s StatementList) Prepare(db *sql.DB) (err error)

Prepare the SQL for each statement in the list and assign the result to the prepared statement.

type UnsentFilter

type UnsentFilter bool
const (
	NoFilter         UnsentFilter = false
	FilterUnsentOnly UnsentFilter = true
)

Jump to

Keyboard shortcuts

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