fix(imap): IMAP/POP3-Import in korrekten Tenant-Index schreiben
IMAP- und POP3-Importer haben Mails immer nur in emails_global indexiert (TenantID nie gesetzt, idxMgr.Global() statt ForTenant(tenantID)). Dadurch fehlten neue Mails ab dem letzten Server-Neustart im Tenant-Index (Suche zeigte veraltete Ergebnisse). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,7 @@ import (
|
||||
type Importer struct {
|
||||
store *Store
|
||||
mailStore *storage.Store
|
||||
idx index.Indexer
|
||||
idxMgr index.TenantIndexer
|
||||
logger *slog.Logger
|
||||
TenantID *int64 // optional tenant assignment for stored mails
|
||||
// PROJ-44: optional OCR enqueue hook, wired from main.go.
|
||||
@@ -24,11 +24,11 @@ type Importer struct {
|
||||
}
|
||||
|
||||
// NewImporter creates a new Importer wired to the storage and index backends.
|
||||
func NewImporter(store *Store, mailStore *storage.Store, idx index.Indexer, logger *slog.Logger) *Importer {
|
||||
func NewImporter(store *Store, mailStore *storage.Store, idxMgr index.TenantIndexer, logger *slog.Logger) *Importer {
|
||||
return &Importer{
|
||||
store: store,
|
||||
mailStore: mailStore,
|
||||
idx: idx,
|
||||
idxMgr: idxMgr,
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
@@ -167,9 +167,10 @@ func (imp *Importer) storeAndIndex(raw []byte, log *slog.Logger) error {
|
||||
HasAttachment: len(pm.Attachments) > 0,
|
||||
Date: pm.Date,
|
||||
Size: int64(len(raw)),
|
||||
TenantID: imp.TenantID,
|
||||
}
|
||||
|
||||
if err := imp.idx.IndexSync(doc); err != nil {
|
||||
if err := imp.idxMgr.ForTenant(imp.TenantID).IndexSync(doc); err != nil {
|
||||
log.Warn("failed to index mail", "id", id, "err", err)
|
||||
// Non-fatal: mail is stored, just not searchable yet
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user