sql: Refactor use of tables

This commit is contained in:
Tom Wiesing 2023-01-09 10:24:24 +01:00
parent 85fe5b5c5a
commit 73d821e320
No known key found for this signature in database
19 changed files with 191 additions and 83 deletions

View file

@ -9,6 +9,7 @@ import (
"github.com/FAU-CDI/wisski-distillery/internal/status"
"github.com/FAU-CDI/wisski-distillery/pkg/environment"
"github.com/tkw1536/goprogram/lib/collection"
"github.com/tkw1536/goprogram/lib/reflectx"
)
// Logger is responsible for logging backups and snapshots
@ -19,6 +20,17 @@ type Logger struct {
}
}
var (
_ component.Table = (*Logger)(nil)
)
func (*Logger) TableInfo() component.TableInfo {
return component.TableInfo{
Model: reflectx.TypeOf[models.Export](),
Name: models.ExportTable,
}
}
// For retrieves (and prunes) the ExportLog.
// Slug determines if entries for Backups (empty slug)
// or a specific Instance (non-empty slug) are returned.
@ -36,7 +48,7 @@ func (log *Logger) For(ctx context.Context, slug string) (exports []models.Expor
// Log retrieves (and prunes) all entries in the snapshot log.
func (log *Logger) Log(ctx context.Context) ([]models.Export, error) {
// query the table!
table, err := log.Dependencies.SQL.QueryTable(ctx, false, models.ExportTable)
table, err := log.Dependencies.SQL.QueryTable(ctx, log)
if err != nil {
return nil, err
}
@ -68,7 +80,7 @@ func (log *Logger) Log(ctx context.Context) ([]models.Export, error) {
// AddToExportLog adds the provided export to the log.
func (log *Logger) Add(ctx context.Context, export models.Export) error {
// find the table
table, err := log.Dependencies.SQL.QueryTable(ctx, false, models.ExportTable)
table, err := log.Dependencies.SQL.QueryTable(ctx, log)
if err != nil {
return err
}