database

package
v0.5.1-mod-1 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2024 License: AGPL-3.0 Imports: 16 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 {
	*dbutil.Database

	User                *UserQuery
	Portal              *PortalQuery
	LostPortal          *LostPortalQuery
	Puppet              *PuppetQuery
	Message             *MessageQuery
	Reaction            *ReactionQuery
	DisappearingMessage *DisappearingMessageQuery
}

func New

func New(db *dbutil.Database) *Database

type DisappearingMessage

type DisappearingMessage struct {
	RoomID   id.RoomID
	EventID  id.EventID
	ExpireIn time.Duration
	ExpireAt time.Time
	// contains filtered or unexported fields
}

func (*DisappearingMessage) Delete

func (msg *DisappearingMessage) Delete(ctx context.Context) error

func (*DisappearingMessage) Insert

func (msg *DisappearingMessage) Insert(ctx context.Context) error

func (*DisappearingMessage) Scan

func (*DisappearingMessage) StartExpirationTimer

func (msg *DisappearingMessage) StartExpirationTimer(ctx context.Context) error

type DisappearingMessageQuery

type DisappearingMessageQuery struct {
	*dbutil.QueryHelper[*DisappearingMessage]
}

func (*DisappearingMessageQuery) GetExpiredMessages

func (dmq *DisappearingMessageQuery) GetExpiredMessages(ctx context.Context) ([]*DisappearingMessage, error)

func (*DisappearingMessageQuery) GetNextScheduledMessage

func (dmq *DisappearingMessageQuery) GetNextScheduledMessage(ctx context.Context) (*DisappearingMessage, error)

func (*DisappearingMessageQuery) GetUnscheduledForRoom

func (dmq *DisappearingMessageQuery) GetUnscheduledForRoom(ctx context.Context, roomID id.RoomID) ([]*DisappearingMessage, error)

func (*DisappearingMessageQuery) NewWithValues

func (dmq *DisappearingMessageQuery) NewWithValues(roomID id.RoomID, eventID id.EventID, expireIn time.Duration, expireAt time.Time) *DisappearingMessage

type LostPortal

type LostPortal struct {
	ChatID   string
	Receiver string
	MXID     id.RoomID
	// contains filtered or unexported fields
}

func (*LostPortal) Delete

func (l *LostPortal) Delete(ctx context.Context) error

func (*LostPortal) Scan

func (l *LostPortal) Scan(row dbutil.Scannable) (*LostPortal, error)

type LostPortalQuery

type LostPortalQuery struct {
	*dbutil.QueryHelper[*LostPortal]
}

func (*LostPortalQuery) GetAll

func (lpq *LostPortalQuery) GetAll(ctx context.Context) ([]*LostPortal, error)

type Message

type Message struct {
	Sender    uuid.UUID
	Timestamp uint64
	PartIndex int

	SignalChatID   string
	SignalReceiver uuid.UUID

	MXID   id.EventID
	RoomID id.RoomID
	// contains filtered or unexported fields
}

func (*Message) Delete

func (msg *Message) Delete(ctx context.Context) error

func (*Message) Insert

func (msg *Message) Insert(ctx context.Context) error

func (*Message) Scan

func (msg *Message) Scan(row dbutil.Scannable) (*Message, error)

func (*Message) SetTimestamp

func (msg *Message) SetTimestamp(ctx context.Context, editTime uint64) error

type MessageQuery

type MessageQuery struct {
	*dbutil.QueryHelper[*Message]
}

func (*MessageQuery) GetAllBetweenTimestamps

func (mq *MessageQuery) GetAllBetweenTimestamps(ctx context.Context, key PortalKey, min, max uint64) ([]*Message, error)

func (*MessageQuery) GetAllPartsBySignalID

func (mq *MessageQuery) GetAllPartsBySignalID(ctx context.Context, sender uuid.UUID, timestamp uint64, receiver uuid.UUID) ([]*Message, error)

func (*MessageQuery) GetByMXID

func (mq *MessageQuery) GetByMXID(ctx context.Context, mxid id.EventID) (*Message, error)

func (*MessageQuery) GetBySignalID

func (mq *MessageQuery) GetBySignalID(ctx context.Context, sender uuid.UUID, timestamp uint64, partIndex int, receiver uuid.UUID) (*Message, error)

func (*MessageQuery) GetLastPartBySignalID

func (mq *MessageQuery) GetLastPartBySignalID(ctx context.Context, sender uuid.UUID, timestamp uint64, receiver uuid.UUID) (*Message, error)

func (*MessageQuery) GetLastPartBySignalIDWithUnknownReceiver

func (mq *MessageQuery) GetLastPartBySignalIDWithUnknownReceiver(ctx context.Context, sender uuid.UUID, timestamp uint64, receiver uuid.UUID) (*Message, error)

func (*MessageQuery) GetManyBySignalID

func (mq *MessageQuery) GetManyBySignalID(ctx context.Context, sender uuid.UUID, timestamps []uint64, receiver uuid.UUID, strictReceiver bool) ([]*Message, error)

type Portal

type Portal struct {
	PortalKey
	MXID           id.RoomID
	Name           string
	Topic          string
	AvatarPath     string
	AvatarHash     string
	AvatarURL      id.ContentURI
	NameSet        bool
	AvatarSet      bool
	TopicSet       bool
	Revision       uint32
	Encrypted      bool
	RelayUserID    id.UserID
	ExpirationTime uint32
	// contains filtered or unexported fields
}

func (*Portal) Delete

func (p *Portal) Delete(ctx context.Context) error

func (*Portal) Insert

func (p *Portal) Insert(ctx context.Context) error

func (*Portal) Scan

func (p *Portal) Scan(row dbutil.Scannable) (*Portal, error)

func (*Portal) Update

func (p *Portal) Update(ctx context.Context) error

type PortalKey

type PortalKey struct {
	ChatID   string
	Receiver uuid.UUID
}

func NewPortalKey

func NewPortalKey(chatID string, receiver uuid.UUID) PortalKey

func (*PortalKey) GroupID

func (pk *PortalKey) GroupID() types.GroupIdentifier

func (*PortalKey) UserID

func (pk *PortalKey) UserID() uuid.UUID

type PortalQuery

type PortalQuery struct {
	*dbutil.QueryHelper[*Portal]
}

func (*PortalQuery) FindPrivateChatsNotInSpace

func (pq *PortalQuery) FindPrivateChatsNotInSpace(ctx context.Context, receiver uuid.UUID) ([]PortalKey, error)

func (*PortalQuery) FindPrivateChatsOf

func (pq *PortalQuery) FindPrivateChatsOf(ctx context.Context, receiver uuid.UUID) ([]*Portal, error)

func (*PortalQuery) FindPrivateChatsWith

func (pq *PortalQuery) FindPrivateChatsWith(ctx context.Context, userID uuid.UUID) ([]*Portal, error)

func (*PortalQuery) GetAllWithMXID

func (pq *PortalQuery) GetAllWithMXID(ctx context.Context) ([]*Portal, error)

func (*PortalQuery) GetByChatID

func (pq *PortalQuery) GetByChatID(ctx context.Context, pk PortalKey) (*Portal, error)

func (*PortalQuery) GetByMXID

func (pq *PortalQuery) GetByMXID(ctx context.Context, mxid id.RoomID) (*Portal, error)

type Puppet

type Puppet struct {
	SignalID    uuid.UUID
	Number      string
	Name        string
	NameQuality int
	AvatarPath  string
	AvatarHash  string
	AvatarURL   id.ContentURI
	NameSet     bool
	AvatarSet   bool

	IsRegistered     bool
	ContactInfoSet   bool
	ProfileFetchedAt time.Time

	CustomMXID  id.UserID
	AccessToken string

	FirstActivityTs int64
	LastActivityTs  int64
	// contains filtered or unexported fields
}

func (*Puppet) Insert

func (p *Puppet) Insert(ctx context.Context) error

func (*Puppet) Scan

func (p *Puppet) Scan(row dbutil.Scannable) (*Puppet, error)

func (*Puppet) Update

func (p *Puppet) Update(ctx context.Context) error

func (*Puppet) UpdateActivityTs

func (p *Puppet) UpdateActivityTs(ctx context.Context, activityTs int64)

type PuppetQuery

type PuppetQuery struct {
	*dbutil.QueryHelper[*Puppet]
}

func (*PuppetQuery) GetAllWithCustomMXID

func (pq *PuppetQuery) GetAllWithCustomMXID(ctx context.Context) ([]*Puppet, error)

func (*PuppetQuery) GetByCustomMXID

func (pq *PuppetQuery) GetByCustomMXID(ctx context.Context, mxid id.UserID) (*Puppet, error)

func (*PuppetQuery) GetByNumber

func (pq *PuppetQuery) GetByNumber(ctx context.Context, number string) (*Puppet, error)

func (*PuppetQuery) GetBySignalID

func (pq *PuppetQuery) GetBySignalID(ctx context.Context, signalID uuid.UUID) (*Puppet, error)

func (*PuppetQuery) GetRecentlyActiveCount

func (pq *PuppetQuery) GetRecentlyActiveCount(ctx context.Context, minActivityDays uint, maxActivityDays *uint) (count uint, err error)

type Reaction

type Reaction struct {
	MsgAuthor    uuid.UUID
	MsgTimestamp uint64
	Author       uuid.UUID
	Emoji        string

	SignalChatID   string
	SignalReceiver uuid.UUID

	MXID   id.EventID
	RoomID id.RoomID
	// contains filtered or unexported fields
}

func (*Reaction) Delete

func (r *Reaction) Delete(ctx context.Context) error

func (*Reaction) Insert

func (r *Reaction) Insert(ctx context.Context) error

func (*Reaction) Scan

func (r *Reaction) Scan(row dbutil.Scannable) (*Reaction, error)

func (*Reaction) Update

func (r *Reaction) Update(ctx context.Context) error

type ReactionQuery

type ReactionQuery struct {
	*dbutil.QueryHelper[*Reaction]
}

func (*ReactionQuery) GetByMXID

func (rq *ReactionQuery) GetByMXID(ctx context.Context, mxid id.EventID) (*Reaction, error)

func (*ReactionQuery) GetBySignalID

func (rq *ReactionQuery) GetBySignalID(ctx context.Context, msgAuthor uuid.UUID, msgTimestamp uint64, author, signalReceiver uuid.UUID) (*Reaction, error)

type User

type User struct {
	MXID           id.UserID
	SignalUsername string
	SignalID       uuid.UUID
	ManagementRoom id.RoomID
	SpaceRoom      id.RoomID
	// contains filtered or unexported fields
}

func (*User) GetLastReadTS

func (u *User) GetLastReadTS(ctx context.Context, portal PortalKey) uint64

func (*User) Insert

func (u *User) Insert(ctx context.Context) error

func (*User) IsInSpace

func (u *User) IsInSpace(ctx context.Context, portal PortalKey) bool

func (*User) MarkInSpace

func (u *User) MarkInSpace(ctx context.Context, portal PortalKey)

func (*User) RemoveInSpaceCache

func (u *User) RemoveInSpaceCache(key PortalKey)

func (*User) Scan

func (u *User) Scan(row dbutil.Scannable) (*User, error)

func (*User) SetLastReadTS

func (u *User) SetLastReadTS(ctx context.Context, portal PortalKey, ts uint64)

func (*User) Update

func (u *User) Update(ctx context.Context) error

type UserQuery

type UserQuery struct {
	*dbutil.QueryHelper[*User]
}

func (*UserQuery) GetAllLoggedIn

func (uq *UserQuery) GetAllLoggedIn(ctx context.Context) ([]*User, error)

func (*UserQuery) GetByMXID

func (uq *UserQuery) GetByMXID(ctx context.Context, mxid id.UserID) (*User, error)

func (*UserQuery) GetByPhone

func (uq *UserQuery) GetByPhone(ctx context.Context, phone string) (*User, error)

func (*UserQuery) GetBySignalID

func (uq *UserQuery) GetBySignalID(ctx context.Context, uuid uuid.UUID) (*User, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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