Enhance table report creation by reloading settings and ensuring logger initialization
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -547,9 +547,13 @@ func FormatSnapshotLabel(snapshotType string, snapshotTime time.Time, tableName
|
|||||||
}
|
}
|
||||||
|
|
||||||
func CreateTableReport(logger *slog.Logger, Database db.Database, ctx context.Context, tableName string, cfg *settings.Settings) ([]byte, error) {
|
func CreateTableReport(logger *slog.Logger, Database db.Database, ctx context.Context, tableName string, cfg *settings.Settings) ([]byte, error) {
|
||||||
|
if logger == nil {
|
||||||
|
logger = slog.Default()
|
||||||
|
}
|
||||||
if err := db.ValidateTableName(tableName); err != nil {
|
if err := db.ValidateTableName(tableName); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
reportCfg := reloadReportSettingsForReport(logger, cfg)
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
logger.Debug("Create table report start", "table", tableName)
|
logger.Debug("Create table report start", "table", tableName)
|
||||||
|
|
||||||
@@ -754,7 +758,7 @@ func CreateTableReport(logger *slog.Logger, Database db.Database, ctx context.Co
|
|||||||
for _, spec := range specs {
|
for _, spec := range specs {
|
||||||
reportHeaders = append(reportHeaders, spec.Name)
|
reportHeaders = append(reportHeaders, spec.Name)
|
||||||
}
|
}
|
||||||
addSummaryPivotSheet(logger, xlsx, sheetName, reportHeaders, rowCount, tableName, cfg)
|
addSummaryPivotSheet(logger, xlsx, sheetName, reportHeaders, rowCount, tableName, reportCfg)
|
||||||
|
|
||||||
meta := reportMetadata{
|
meta := reportMetadata{
|
||||||
TableName: tableName,
|
TableName: tableName,
|
||||||
@@ -787,6 +791,24 @@ func CreateTableReport(logger *slog.Logger, Database db.Database, ctx context.Co
|
|||||||
return buffer.Bytes(), nil
|
return buffer.Bytes(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func reloadReportSettingsForReport(logger *slog.Logger, cfg *settings.Settings) *settings.Settings {
|
||||||
|
if cfg == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if strings.TrimSpace(cfg.SettingsPath) == "" {
|
||||||
|
return cfg
|
||||||
|
}
|
||||||
|
|
||||||
|
reloaded := settings.New(logger, cfg.SettingsPath)
|
||||||
|
if err := reloaded.ReadYMLSettings(); err != nil {
|
||||||
|
logger.Warn("failed to reload settings from disk before report creation; using in-memory settings", "settings_file", cfg.SettingsPath, "error", err)
|
||||||
|
return cfg
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.Debug("reloaded settings from disk before report creation", "settings_file", cfg.SettingsPath)
|
||||||
|
return reloaded
|
||||||
|
}
|
||||||
|
|
||||||
// SaveTableReport renders a table report and writes it to the destination directory with a .xlsx extension.
|
// SaveTableReport renders a table report and writes it to the destination directory with a .xlsx extension.
|
||||||
func SaveTableReport(logger *slog.Logger, Database db.Database, ctx context.Context, tableName, destDir string, cfg *settings.Settings) (string, error) {
|
func SaveTableReport(logger *slog.Logger, Database db.Database, ctx context.Context, tableName, destDir string, cfg *settings.Settings) (string, error) {
|
||||||
if err := db.ValidateTableName(tableName); err != nil {
|
if err := db.ValidateTableName(tableName); err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user