优化结构

This commit is contained in:
Yvan
2026-08-28 09:19:54 +08:00
parent 03a4131f6e
commit 279692375b
57 changed files with 778 additions and 799 deletions
+6 -19
View File
@@ -48,8 +48,7 @@ func (d *Data) persistConfigValues(dataConfig *config.Data, adminConfig *config.
if err = document.Set("admin", fileAdmin); err != nil {
return err
}
document.Delete("admin", "storage")
document.Delete("admin", "email")
document.DeleteIntegrationConfig()
if adminConfig.System != nil {
if err = document.SetServerHTTPPort(adminConfig.System.Addr); err != nil {
return err
@@ -100,8 +99,7 @@ func (d *Data) persistDatabaseConfig(database *config.Database, signingKey strin
return err
}
}
document.Delete("admin", "storage")
document.Delete("admin", "email")
document.DeleteIntegrationConfig()
return document.Save()
}
@@ -119,8 +117,7 @@ func (d *Data) removeIntegrationConfigFromFile() error {
if !document.Has("admin", "storage") && !document.Has("admin", "email") {
return nil
}
document.Delete("admin", "storage")
document.Delete("admin", "email")
document.DeleteIntegrationConfig()
return document.Save()
}
@@ -135,6 +132,7 @@ func (d *Data) reloadConfig(ctx context.Context) error {
if err != nil {
return err
}
next = config.MergeRuntimeConfig(d.Config(), next)
if next.Data == nil || next.Data.Database == nil || next.Admin == nil {
return fmt.Errorf("data.database and admin configuration are required")
}
@@ -170,23 +168,12 @@ func (d *Data) reloadConfig(ctx context.Context) error {
return fmt.Errorf("reload database migrations: %w", err)
}
}
legacyStorage := next.Admin.Storage
legacyEmail := next.Admin.Email
currentAdmin := d.runtime.Admin()
if legacyStorage == nil {
if currentAdmin != nil {
legacyStorage = currentAdmin.Storage
}
}
if legacyEmail == nil && currentAdmin != nil {
legacyEmail = currentAdmin.Email
}
storageConfig, err := dataintegration.ResolveStorageConfig(candidateDB.WithContext(ctx), legacyStorage)
storageConfig, err := dataintegration.ResolveStorageConfig(candidateDB.WithContext(ctx), next.Admin.Storage)
if err != nil {
return fmt.Errorf("reload storage configuration: %w", err)
}
next.Admin.Storage = storageConfig
emailConfig, err := dataintegration.ResolveEmailConfig(candidateDB.WithContext(ctx), legacyEmail)
emailConfig, err := dataintegration.ResolveEmailConfig(candidateDB.WithContext(ctx), next.Admin.Email)
if err != nil {
return fmt.Errorf("reload email configuration: %w", err)
}