Documentation ¶
Index ¶
- Constants
- Variables
- func ClientReadType[T any](ctx context.Context, c Client, op func(context.Context, ReadOnly) (T, error)) (T, error)
- func ClientWriteType[T any](ctx context.Context, c Client, ...) (T, error)
- func DeleteDB(dir, userID string) error
- func DeleteDeferredDBFiles(dir string) error
- func GetDeferredDeleteDBPath(dir string) string
- func IsErrNotFound(err error) bool
- func SplitMailboxIDPairSlice(s []MailboxIDPair) ([]imap.InternalMailboxID, []imap.MailboxID)
- func SplitMessageIDPairSlice(s []MessageIDPair) ([]imap.InternalMessageID, []imap.MessageID)
- type Client
- type ClientInterface
- type CreateMessageReq
- type DeletedSubscription
- type Mailbox
- type MailboxAttr
- type MailboxFlag
- type MailboxIDPair
- type MailboxReadOps
- type MailboxWithAttr
- type MailboxWriteOps
- type Message
- type MessageFlagSet
- type MessageIDPair
- type MessageReadOps
- type MessageWithFlags
- type MessageWriteOps
- type ReadOnly
- type SnapshotMessageResult
- type SubscriptionReadOps
- type SubscriptionWriteOps
- type Transaction
- type UID
- type UIDWithFlags
Constants ¶
View Source
const ChunkLimit = 1000
Variables ¶
View Source
var ErrInvalidDatabaseVersion = errors.New("invalid database version")
View Source
var ErrMigrationFailed = errors.New("database migration failed")
View Source
var ErrNotFound = errors.New("value not found")
View Source
var ErrTransactionFailed = errors.New("transaction failed")
Functions ¶
func ClientReadType ¶
func ClientWriteType ¶
func DeleteDB ¶
DeleteDB will rename all the database files for the given user to a directory within the same folder to avoid issues with ent not being able to close the database on demand. The database will be cleaned up on the next run on the Gluon server.
func DeleteDeferredDBFiles ¶
DeleteDeferredDBFiles deletes all data from previous databases that were scheduled for removal.
func GetDeferredDeleteDBPath ¶
func IsErrNotFound ¶
func SplitMailboxIDPairSlice ¶
func SplitMailboxIDPairSlice(s []MailboxIDPair) ([]imap.InternalMailboxID, []imap.MailboxID)
func SplitMessageIDPairSlice ¶
func SplitMessageIDPairSlice(s []MessageIDPair) ([]imap.InternalMessageID, []imap.MessageID)
Types ¶
type ClientInterface ¶
type CreateMessageReq ¶
type DeletedSubscription ¶
type MailboxAttr ¶
type MailboxFlag ¶
type MailboxIDPair ¶
type MailboxIDPair struct { InternalID imap.InternalMailboxID RemoteID imap.MailboxID }
func NewMailboxIDPair ¶
func NewMailboxIDPair(mbox *Mailbox) MailboxIDPair
func NewMailboxIDPairWithoutRemote ¶
func NewMailboxIDPairWithoutRemote(internalID imap.InternalMailboxID) MailboxIDPair
func (*MailboxIDPair) String ¶
func (m *MailboxIDPair) String() string
type MailboxReadOps ¶
type MailboxReadOps interface { MailboxExistsWithID(ctx context.Context, mboxID imap.InternalMailboxID) (bool, error) MailboxExistsWithRemoteID(ctx context.Context, mboxID imap.MailboxID) (bool, error) MailboxExistsWithName(ctx context.Context, name string) (bool, error) GetMailboxIDFromRemoteID(ctx context.Context, mboxID imap.MailboxID) (imap.InternalMailboxID, error) GetMailboxName(ctx context.Context, mboxID imap.InternalMailboxID) (string, error) GetMailboxNameWithRemoteID(ctx context.Context, mboxID imap.MailboxID) (string, error) GetMailboxMessageIDPairs(ctx context.Context, mboxID imap.InternalMailboxID) ([]MessageIDPair, error) GetAllMailboxesWithAttr(ctx context.Context) ([]*MailboxWithAttr, error) GetAllMailboxesAsRemoteIDs(ctx context.Context) ([]imap.MailboxID, error) GetMailboxByName(ctx context.Context, name string) (*Mailbox, error) GetMailboxByID(ctx context.Context, mboxID imap.InternalMailboxID) (*Mailbox, error) GetMailboxByRemoteID(ctx context.Context, mboxID imap.MailboxID) (*Mailbox, error) GetMailboxRecentCount(ctx context.Context, mboxID imap.InternalMailboxID) (int, error) GetMailboxMessageCount(ctx context.Context, mboxID imap.InternalMailboxID) (int, error) GetMailboxMessageCountWithRemoteID(ctx context.Context, mboxID imap.MailboxID) (int, error) GetMailboxFlags(ctx context.Context, mboxID imap.InternalMailboxID) (imap.FlagSet, error) GetMailboxPermanentFlags(ctx context.Context, mboxID imap.InternalMailboxID) (imap.FlagSet, error) GetMailboxAttributes(ctx context.Context, mboxID imap.InternalMailboxID) (imap.FlagSet, error) GetMailboxUID(ctx context.Context, mboxID imap.InternalMailboxID) (imap.UID, error) GetMailboxMessageCountAndUID(ctx context.Context, mboxID imap.InternalMailboxID) (int, imap.UID, error) GetMailboxMessageForNewSnapshot(ctx context.Context, mboxID imap.InternalMailboxID) ([]SnapshotMessageResult, error) MailboxTranslateRemoteIDs(ctx context.Context, mboxIDs []imap.MailboxID) ([]imap.InternalMailboxID, error) MailboxFilterContains(ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []MessageIDPair) ([]imap.InternalMessageID, error) GetMailboxCount(ctx context.Context) (int, error) }
type MailboxWithAttr ¶
type MailboxWriteOps ¶
type MailboxWriteOps interface { MailboxReadOps CreateMailbox(ctx context.Context, mboxID imap.MailboxID, name string, flags, permFlags, attrs imap.FlagSet, uidValidity imap.UID) (*Mailbox, error) GetOrCreateMailbox(ctx context.Context, mboxID imap.MailboxID, name string, flags, permFlags, attrs imap.FlagSet, uidValidity imap.UID) (*Mailbox, error) GetOrCreateMailboxAlt(ctx context.Context, mbox imap.Mailbox, delimiter string, uidValidity imap.UID) (*Mailbox, error) RenameMailboxWithRemoteID(ctx context.Context, mboxID imap.MailboxID, name string) error DeleteMailboxWithRemoteID(ctx context.Context, mboxID imap.MailboxID) error AddMessagesToMailbox(ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []MessageIDPair) ([]UIDWithFlags, error) RemoveMessagesFromMailbox(ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []imap.InternalMessageID) error ClearRecentFlagInMailboxOnMessage(ctx context.Context, mboxID imap.InternalMailboxID, messageID imap.InternalMessageID) error ClearRecentFlagsInMailbox(ctx context.Context, mboxID imap.InternalMailboxID) error CreateMailboxIfNotExists(ctx context.Context, mbox imap.Mailbox, delimiter string, uidValidity imap.UID) error SetMailboxMessagesDeletedFlag(ctx context.Context, mboxID imap.InternalMailboxID, messageIDs []imap.InternalMessageID, deleted bool) error SetMailboxSubscribed(ctx context.Context, mboxID imap.InternalMailboxID, subscribed bool) error UpdateRemoteMailboxID(ctx context.Context, mobxID imap.InternalMailboxID, remoteID imap.MailboxID) error SetMailboxUIDValidity(ctx context.Context, mboxID imap.InternalMailboxID, uidValidity imap.UID) error }
type MessageFlagSet ¶
type MessageIDPair ¶
type MessageIDPair struct { InternalID imap.InternalMessageID RemoteID imap.MessageID }
func NewMessageIDPair ¶
func NewMessageIDPair(msg *Message) MessageIDPair
func (*MessageIDPair) String ¶
func (m *MessageIDPair) String() string
type MessageReadOps ¶
type MessageReadOps interface { MessageExists(ctx context.Context, id imap.InternalMessageID) (bool, error) MessageExistsWithRemoteID(ctx context.Context, id imap.MessageID) (bool, error) GetMessageNoEdges(ctx context.Context, id imap.InternalMessageID) (*Message, error) GetTotalMessageCount(ctx context.Context) (int, error) GetMessageRemoteID(ctx context.Context, id imap.InternalMessageID) (imap.MessageID, error) GetImportedMessageData(ctx context.Context, id imap.InternalMessageID) (*MessageWithFlags, error) GetMessageDateAndSize(ctx context.Context, id imap.InternalMessageID) (time.Time, int, error) GetMessageMailboxIDs(ctx context.Context, id imap.InternalMessageID) ([]imap.InternalMailboxID, error) GetMessagesFlags(ctx context.Context, ids []imap.InternalMessageID) ([]MessageFlagSet, error) GetMessageIDsMarkedAsDelete(ctx context.Context) ([]imap.InternalMessageID, error) GetMessageIDFromRemoteID(ctx context.Context, id imap.MessageID) (imap.InternalMessageID, error) GetMessageDeletedFlag(ctx context.Context, id imap.InternalMessageID) (bool, error) GetAllMessagesIDsAsMap(ctx context.Context) (map[imap.InternalMessageID]struct{}, error) }
type MessageWithFlags ¶
type MessageWriteOps ¶
type MessageWriteOps interface { MessageReadOps CreateMessages(ctx context.Context, reqs ...*CreateMessageReq) error CreateMessageAndAddToMailbox(ctx context.Context, mbox imap.InternalMailboxID, req *CreateMessageReq) (imap.UID, imap.FlagSet, error) MarkMessageAsDeleted(ctx context.Context, id imap.InternalMessageID) error MarkMessageAsDeletedAndAssignRandomRemoteID(ctx context.Context, id imap.InternalMessageID) error MarkMessageAsDeletedWithRemoteID(ctx context.Context, id imap.MessageID) error DeleteMessages(ctx context.Context, ids []imap.InternalMessageID) error UpdateRemoteMessageID(ctx context.Context, internalID imap.InternalMessageID, remoteID imap.MessageID) error AddFlagToMessages(ctx context.Context, ids []imap.InternalMessageID, flag string) error RemoveFlagFromMessages(ctx context.Context, ids []imap.InternalMessageID, flag string) error SetFlagsOnMessages(ctx context.Context, ids []imap.InternalMessageID, flags imap.FlagSet) error }
type ReadOnly ¶
type ReadOnly interface { MailboxReadOps MessageReadOps SubscriptionReadOps }
type SnapshotMessageResult ¶
type SnapshotMessageResult struct { InternalID imap.InternalMessageID `json:"uid_message"` RemoteID imap.MessageID `json:"remote_id"` UID imap.UID `json:"uid"` Recent bool `json:"recent"` Deleted bool `json:"deleted"` Flags string `json:"flags"` }
func (*SnapshotMessageResult) GetFlagSet ¶
func (msg *SnapshotMessageResult) GetFlagSet() imap.FlagSet
type SubscriptionReadOps ¶
type SubscriptionWriteOps ¶
type Transaction ¶
type Transaction interface { ReadOnly MailboxWriteOps MessageWriteOps SubscriptionWriteOps }
type UIDWithFlags ¶
type UIDWithFlags struct { InternalID imap.InternalMessageID `json:"uid_message"` RemoteID imap.MessageID `json:"remote_id"` UID imap.UID `json:"uid"` Recent bool `json:"recent"` Deleted bool `json:"deleted"` Flags string `json:"flags"` }
func (*UIDWithFlags) GetFlagSet ¶
func (u *UIDWithFlags) GetFlagSet() imap.FlagSet
Click to show internal directories.
Click to hide internal directories.