database

package
v0.0.0-...-3bed8bd Latest Latest
Warning

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

Go to latest
Published: Jan 17, 2024 License: AGPL-3.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	KVLookedForPortals = "looked_for_portals"

	KVNACServToken = "nacserv_override_token"
	KVNACServURL   = "nacserv_override_url"

	KVHackyNACErrorPersistence = "hacky_nac_error_persistence"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type CustomBridgeInfoContent

type CustomBridgeInfoContent struct {
	event.BridgeEventContent
	Channel CustomBridgeInfoSection `json:"channel"`
}

type CustomBridgeInfoSection

type CustomBridgeInfoSection struct {
	event.BridgeInfoSection

	Participants   []uri.ParsedURI `json:"com.beeper.imessage.participants,omitempty"`
	Service        string          `json:"com.beeper.imessage.service,omitempty"`
	GroupID        string          `json:"com.beeper.imessage.group_id,omitempty"`
	OutgoingHandle uri.ParsedURI   `json:"com.beeper.imessage.outgoing_handle,omitempty"`
}

type Database

type Database struct {
	*dbutil.Database

	User            *UserQuery
	Portal          *PortalQuery
	Puppet          *PuppetQuery
	Message         *MessageQuery
	Tapback         *TapbackQuery
	IDSCache        *IDSCacheQuery
	OutgoingCounter *OutgoingCounterQuery
	FileTransfer    *FileTransferQuery
	KV              *KeyValueQuery
	RerouteHistory  *RerouteHistoryQuery
}

func New

func New(parent *dbutil.Database) *Database

type FileTransfer

type FileTransfer struct {
	UserID     int
	Identifier string
	State      *ids.AttachmentDownloader
	MXC        id.ContentURIString
	TempPath   string
	Error      string
	// contains filtered or unexported fields
}

func (*FileTransfer) Insert

func (ft *FileTransfer) Insert(ctx context.Context) error

func (*FileTransfer) Scan

func (ft *FileTransfer) Scan(row dbutil.Scannable) (*FileTransfer, error)

func (*FileTransfer) Update

func (ft *FileTransfer) Update(ctx context.Context) error

type FileTransferQuery

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

func (*FileTransferQuery) Get

func (ftq *FileTransferQuery) Get(ctx context.Context, userID int, identifier string) (*FileTransfer, error)

func (*FileTransferQuery) GetAllPending

func (ftq *FileTransferQuery) GetAllPending(ctx context.Context, userID int) ([]*FileTransfer, error)

func (*FileTransferQuery) New

func (ftq *FileTransferQuery) New() *FileTransfer

type IDSCache

type IDSCache struct {
	Query  *IDSCacheQuery
	UserID int
}

func (*IDSCache) Clear

func (ic *IDSCache) Clear(ctx context.Context) error

func (*IDSCache) Delete

func (ic *IDSCache) Delete(ctx context.Context, ourURI, theirURI uri.ParsedURI) error

func (*IDSCache) Get

func (ic *IDSCache) Get(ctx context.Context, ourURI, theirURI uri.ParsedURI) (*ids.LookupResult, error)

func (*IDSCache) GetMany

func (ic *IDSCache) GetMany(ctx context.Context, ourURI uri.ParsedURI, theirURIs []uri.ParsedURI) (map[uri.ParsedURI]*ids.LookupResult, error)

func (*IDSCache) Invalidate

func (ic *IDSCache) Invalidate(ctx context.Context, ourURI, theirURI uri.ParsedURI) error

func (*IDSCache) MarkBroadcasted

func (ic *IDSCache) MarkBroadcasted(ctx context.Context, handle uri.ParsedURI, broadcasted ...uri.ParsedURI) error

func (*IDSCache) Put

func (ic *IDSCache) Put(ctx context.Context, ourURI, theirURI uri.ParsedURI, result *ids.LookupResult) error

type IDSCacheEntry

type IDSCacheEntry struct {
	UserID      int
	OurURI      uri.ParsedURI
	TheirURI    uri.ParsedURI
	Timestamp   time.Time
	Result      *ids.LookupResult
	Broadcasted bool
	// contains filtered or unexported fields
}

func (*IDSCacheEntry) Delete

func (ice *IDSCacheEntry) Delete(ctx context.Context) error

func (*IDSCacheEntry) Scan

func (ice *IDSCacheEntry) Scan(row dbutil.Scannable) (*IDSCacheEntry, error)

func (*IDSCacheEntry) Upsert

func (ice *IDSCacheEntry) Upsert(ctx context.Context) error

type IDSCacheQuery

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

func (*IDSCacheQuery) Clear

func (iq *IDSCacheQuery) Clear(ctx context.Context, userID int) error

func (*IDSCacheQuery) Get

func (iq *IDSCacheQuery) Get(ctx context.Context, userID int, ourURI uri.ParsedURI, theirURI uri.ParsedURI) (*IDSCacheEntry, error)

func (*IDSCacheQuery) GetMany

func (iq *IDSCacheQuery) GetMany(ctx context.Context, userID int, ourURI uri.ParsedURI, theirURIs []uri.ParsedURI) ([]*IDSCacheEntry, error)

func (*IDSCacheQuery) MarkBroadcasted

func (iq *IDSCacheQuery) MarkBroadcasted(ctx context.Context, userID int, ourURI uri.ParsedURI, theirURIs []uri.ParsedURI) (err error)

func (*IDSCacheQuery) New

func (iq *IDSCacheQuery) New() *IDSCacheEntry

type Key

type Key struct {
	URI      uri.ParsedURI
	Receiver int
}

func (Key) MarshalZerologObject

func (k Key) MarshalZerologObject(e *zerolog.Event)

type KeyValueQuery

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

func (*KeyValueQuery) Delete

func (kvq *KeyValueQuery) Delete(key string)

func (*KeyValueQuery) Get

func (kvq *KeyValueQuery) Get(key string) (value string)

func (*KeyValueQuery) Set

func (kvq *KeyValueQuery) Set(key, value string)

type Message

type Message struct {
	Portal          Key
	ID              uuid.UUID
	Part            int
	StartIndex      int
	Length          int
	MXID            id.EventID
	RoomID          id.RoomID
	SenderURI       uri.ParsedURI
	Timestamp       int64
	ReceivingHandle uri.ParsedURI

	ReplyToID   uuid.UUID
	ReplyToPart int
	// 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) PartInfo

func (msg *Message) PartInfo() imessage.MessagePartInfo

func (*Message) Scan

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

func (*Message) Time

func (msg *Message) Time() time.Time

type MessageQuery

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

func (*MessageQuery) GetAllMessagesForID

func (mq *MessageQuery) GetAllMessagesForID(ctx context.Context, chat Key, id uuid.UUID) ([]*Message, error)

func (*MessageQuery) GetAllMessagesForIDWithoutChat

func (mq *MessageQuery) GetAllMessagesForIDWithoutChat(ctx context.Context, receiver int, id uuid.UUID) ([]*Message, error)

func (*MessageQuery) GetByID

func (mq *MessageQuery) GetByID(ctx context.Context, chat Key, id uuid.UUID, part int) (*Message, error)

func (*MessageQuery) GetByIDWithoutChat

func (mq *MessageQuery) GetByIDWithoutChat(ctx context.Context, receiver int, id uuid.UUID, part int) (*Message, error)

func (*MessageQuery) GetByMXID

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

func (*MessageQuery) GetEarliestTimestampInChat

func (mq *MessageQuery) GetEarliestTimestampInChat(chat string) (int64, error)

func (*MessageQuery) GetFirstInChat

func (mq *MessageQuery) GetFirstInChat(ctx context.Context, chat Key) (*Message, error)

func (*MessageQuery) GetLastInChat

func (mq *MessageQuery) GetLastInChat(ctx context.Context, chat Key) (*Message, error)

func (*MessageQuery) GetLastMessageInThread

func (mq *MessageQuery) GetLastMessageInThread(ctx context.Context, chat Key, id uuid.UUID, part int) (*Message, error)

func (*MessageQuery) GetLastPartByID

func (mq *MessageQuery) GetLastPartByID(ctx context.Context, chat Key, id uuid.UUID) (*Message, error)

func (*MessageQuery) GetLastPartByIDWithoutChat

func (mq *MessageQuery) GetLastPartByIDWithoutChat(ctx context.Context, receiver int, id uuid.UUID) (*Message, error)

func (*MessageQuery) GetPortalURIByID

func (mq *MessageQuery) GetPortalURIByID(ctx context.Context, id uuid.UUID, receiver int) (uri uri.ParsedURI, err error)

func (*MessageQuery) New

func (mq *MessageQuery) New() *Message

type OutgoingCounter

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

func (*OutgoingCounter) GetNext

func (c *OutgoingCounter) GetNext(ctx context.Context) (uint32, error)

type OutgoingCounterQuery

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

func (*OutgoingCounterQuery) IncrementAndGetNext

func (q *OutgoingCounterQuery) IncrementAndGetNext(ctx context.Context, userID int, theirURI uri.ParsedURI) (uint32, error)

type OutgoingCounterStore

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

func NewOutgoingCounterStore

func NewOutgoingCounterStore(query *OutgoingCounterQuery, userID int) *OutgoingCounterStore

func (*OutgoingCounterStore) Get

type Portal

type Portal struct {
	Key
	Service        imessage.Service
	GroupID        string
	Participants   []uri.ParsedURI
	OutgoingHandle uri.ParsedURI

	MXID              id.RoomID
	Name              string
	NameSet           bool
	AvatarHash        *[32]byte
	AvatarGUID        *string
	AvatarURL         id.ContentURIString
	AvatarSet         bool
	Encrypted         bool
	InSpace           bool
	PropertiesVersion int
	// contains filtered or unexported fields
}

func (*Portal) Delete

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

func (*Portal) GetBridgeInfo

func (portal *Portal) GetBridgeInfo() *CustomBridgeInfoContent

func (*Portal) Insert

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

func (*Portal) IsPrivateChat

func (portal *Portal) IsPrivateChat() bool

func (*Portal) Scan

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

func (*Portal) Update

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

type PortalQuery

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

func (*PortalQuery) FindWithRecentMessages

func (pq *PortalQuery) FindWithRecentMessages(ctx context.Context, receiver int, interval time.Duration) ([]*Portal, error)

func (*PortalQuery) GetAllForUser

func (pq *PortalQuery) GetAllForUser(ctx context.Context, receiver int) ([]*Portal, error)

func (*PortalQuery) GetAllWithMXID

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

func (*PortalQuery) GetByMXID

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

func (*PortalQuery) GetByParticipants

func (pq *PortalQuery) GetByParticipants(ctx context.Context, participants []uri.ParsedURI, receiver int) (*Portal, error)

func (*PortalQuery) GetByURI

func (pq *PortalQuery) GetByURI(ctx context.Context, key Key) (*Portal, error)

func (*PortalQuery) New

func (pq *PortalQuery) New() *Portal

type Puppet

type Puppet struct {
	Key
	Displayname    string
	AvatarHash     *[32]byte
	AvatarURL      id.ContentURI
	ContactInfoSet bool
	// contains filtered or unexported fields
}

func (*Puppet) Insert

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

func (*Puppet) Scan

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

func (*Puppet) Update

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

type PuppetQuery

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

func (*PuppetQuery) Get

func (pq *PuppetQuery) Get(ctx context.Context, key Key) (*Puppet, error)

func (*PuppetQuery) New

func (pq *PuppetQuery) New() *Puppet

type RerouteHistory

type RerouteHistory struct {
	Query  *RerouteHistoryQuery
	UserID int
}

func (*RerouteHistory) Clear

func (rh *RerouteHistory) Clear(ctx context.Context) error

func (*RerouteHistory) Delete

func (rh *RerouteHistory) Delete(ctx context.Context, handle uri.ParsedURI) error

func (*RerouteHistory) Get

func (rh *RerouteHistory) Get(ctx context.Context, handle uri.ParsedURI) (*time.Time, error)

func (*RerouteHistory) Put

func (rh *RerouteHistory) Put(ctx context.Context, handle uri.ParsedURI) error

type RerouteHistoryEntry

type RerouteHistoryEntry struct {
	UserID    int
	Handle    uri.ParsedURI
	Timestamp time.Time
	// contains filtered or unexported fields
}

func (*RerouteHistoryEntry) Scan

func (*RerouteHistoryEntry) Upsert

func (ft *RerouteHistoryEntry) Upsert(ctx context.Context) error

type RerouteHistoryQuery

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

func (*RerouteHistoryQuery) Clear

func (rhq *RerouteHistoryQuery) Clear(ctx context.Context, userID int) error

func (*RerouteHistoryQuery) Delete

func (rhq *RerouteHistoryQuery) Delete(ctx context.Context, userID int, handle uri.ParsedURI)

func (*RerouteHistoryQuery) Get

func (rhq *RerouteHistoryQuery) Get(ctx context.Context, userID int, handle uri.ParsedURI) (*RerouteHistoryEntry, error)

func (*RerouteHistoryQuery) New

type Tapback

type Tapback struct {
	Portal          Key
	MessageID       uuid.UUID
	MessagePart     int
	Sender          uri.ParsedURI
	Type            imessage.TapbackType
	ID              uuid.UUID
	MXID            id.EventID
	ReceivingHandle uri.ParsedURI
	// contains filtered or unexported fields
}

func (*Tapback) Delete

func (tapback *Tapback) Delete(ctx context.Context) error

func (*Tapback) Insert

func (tapback *Tapback) Insert(ctx context.Context) error

func (*Tapback) Scan

func (tapback *Tapback) Scan(row dbutil.Scannable) (*Tapback, error)

func (*Tapback) Update

func (tapback *Tapback) Update(ctx context.Context) error

type TapbackQuery

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

func (*TapbackQuery) GetByID

func (mq *TapbackQuery) GetByID(ctx context.Context, chat Key, messageID uuid.UUID, part int, tapbackSender uri.ParsedURI) (*Tapback, error)

func (*TapbackQuery) GetByMXID

func (mq *TapbackQuery) GetByMXID(ctx context.Context, mxid id.EventID) (*Tapback, error)

func (*TapbackQuery) GetByTapbackID

func (mq *TapbackQuery) GetByTapbackID(ctx context.Context, chat Key, tapbackID uuid.UUID) (*Tapback, error)

func (*TapbackQuery) GetByTapbackIDWithoutChat

func (tq *TapbackQuery) GetByTapbackIDWithoutChat(ctx context.Context, receiver int, id uuid.UUID) (*Tapback, error)

func (*TapbackQuery) New

func (mq *TapbackQuery) New() *Tapback

type User

type User struct {
	RowID int
	MXID  id.UserID

	AccessToken string

	SpaceRoom      id.RoomID
	ManagementRoom id.RoomID

	HideReadReceipts bool

	FCMPushToken string

	AppleRegistration *ids.Config
	SecondaryReg      *ids.Config

	RegisteredPhoneNumbers []string
	// contains filtered or unexported fields
}

func (*User) Insert

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

func (*User) Scan

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

func (*User) Update

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

type UserQuery

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

func (*UserQuery) GetAllWithAppleRegistration

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

func (*UserQuery) GetAllWithDoublePuppet

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

func (*UserQuery) GetByMXID

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

func (*UserQuery) GetByRowID

func (uq *UserQuery) GetByRowID(ctx context.Context, rowID int) (*User, error)

func (*UserQuery) New

func (uq *UserQuery) New() *User

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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