repository

package
v0.0.16 Latest Latest
Warning

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

Go to latest
Published: Mar 17, 2025 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MigrateMailstackDB added in v0.0.15

func MigrateMailstackDB(dbConfig *config.MailstackDatabaseConfig, mailstackDB *gorm.DB) error

func MigrateOpenlineDB added in v0.0.15

func MigrateOpenlineDB(dbConfig *config.OpenlineDatabaseConfig, openlineDB *gorm.DB) error

func NewEmailAttachmentRepository

func NewEmailAttachmentRepository(db *gorm.DB, storageService interfaces.StorageService) interfaces.EmailAttachmentRepository

func NewEmailRepository

func NewEmailRepository(db *gorm.DB) interfaces.EmailRepository

func NewEmailThreadRepository added in v0.0.3

func NewEmailThreadRepository(db *gorm.DB) interfaces.EmailThreadRepository

NewEmailThreadRepository creates a new email thread repository

func NewMailboxRepository

func NewMailboxRepository(db *gorm.DB) interfaces.MailboxRepository

func NewMailboxSyncRepository

func NewMailboxSyncRepository(db *gorm.DB) interfaces.MailboxSyncRepository

func NewOrphanEmailRepository added in v0.0.3

func NewOrphanEmailRepository(db *gorm.DB) interfaces.OrphanEmailRepository

NewOrphanEmailRepository creates a new orphan email repository

Types

type DomainRepository added in v0.0.3

type DomainRepository interface {
	RegisterDomain(ctx context.Context, tenant, domain string) (*models.MailStackDomain, error)
	CheckDomainOwnership(ctx context.Context, tenant, domain string) (bool, error)
	GetDomain(ctx context.Context, tenant, domain string) (*models.MailStackDomain, error)
	GetActiveDomains(ctx context.Context, tenant string) ([]models.MailStackDomain, error)
	MarkConfigured(ctx context.Context, tenant, domain string) error
	SetDkimKeys(ctx context.Context, tenant, domain, dkimPublic, dkimPrivate string) error
	CreateDMARCReport(ctx context.Context, tenant string, report *models.DMARCMonitoring) error
	CreateMailstackReputationScore(ctx context.Context, tenant string, score *models.MailstackReputation) error
	GetDomainCrossTenant(ctx context.Context, domain string) (*models.MailStackDomain, error)
	GetAllActiveDomainsCrossTenant(ctx context.Context) ([]models.MailStackDomain, error)
}

func NewDomainRepository added in v0.0.3

func NewDomainRepository(db *gorm.DB) DomainRepository

type Repositories

type Repositories struct {
	DomainRepository                DomainRepository
	EmailRepository                 interfaces.EmailRepository
	EmailAttachmentRepository       interfaces.EmailAttachmentRepository
	EmailThreadRepository           interfaces.EmailThreadRepository
	MailboxRepository               interfaces.MailboxRepository
	MailboxSyncRepository           interfaces.MailboxSyncRepository
	OrphanEmailRepository           interfaces.OrphanEmailRepository
	TenantSettingsMailboxRepository TenantSettingsMailboxRepository
}

func InitRepositories

func InitRepositories(mailstackDB *gorm.DB, openlineDB *gorm.DB, r2Config *config.R2StorageConfig) *Repositories

type TenantSettingsMailboxRepository added in v0.0.3

type TenantSettingsMailboxRepository interface {
	GetAll(ctx context.Context) ([]*models.TenantSettingsMailbox, error)
	GetForRampUp(ctx context.Context) ([]*models.TenantSettingsMailbox, error)
	GetById(ctx context.Context, id string) (*models.TenantSettingsMailbox, error)
	GetByMailbox(ctx context.Context, mailbox string) (*models.TenantSettingsMailbox, error)
	GetAllByDomain(ctx context.Context, domain string) ([]*models.TenantSettingsMailbox, error)
	GetAllByUserId(ctx context.Context, userId string) ([]*models.TenantSettingsMailbox, error)

	Merge(ctx context.Context, tx *gorm.DB, mailbox *models.TenantSettingsMailbox) error
	UpdateStatus(ctx context.Context, id string, status models.MailboxStatus) error
}

func NewTenantSettingsMailboxRepository added in v0.0.3

func NewTenantSettingsMailboxRepository(db *gorm.DB) TenantSettingsMailboxRepository

Jump to

Keyboard shortcuts

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