database

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2024 License: AGPL-3.0 Imports: 17 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) ReID added in v0.6.0

func (p *Portal) ReID(ctx context.Context, newID string) 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() libsignalgo.ServiceID

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
	// 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

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)

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