mirror of
https://github.com/AmanTahiliani/box-box.git
synced 2026-08-07 19:56:18 -04:00
32 lines
941 B
Go
32 lines
941 B
Go
|
|
package store
|
||
|
|
|
||
|
|
import (
|
||
|
|
"fmt"
|
||
|
|
"time"
|
||
|
|
)
|
||
|
|
|
||
|
|
// CreateIngestionRun records the start of an ingestion attempt.
|
||
|
|
func (s *Store) CreateIngestionRun(scopeType, scopeKey string, refresh bool) (int64, error) {
|
||
|
|
result, err := s.db.Exec(`
|
||
|
|
INSERT INTO ingestion_runs (scope_type, scope_key, started_at, status, refresh)
|
||
|
|
VALUES (?, ?, ?, 'running', ?)
|
||
|
|
`, scopeType, scopeKey, time.Now().Unix(), boolInt(refresh))
|
||
|
|
if err != nil {
|
||
|
|
return 0, fmt.Errorf("create ingestion run: %w", err)
|
||
|
|
}
|
||
|
|
return result.LastInsertId()
|
||
|
|
}
|
||
|
|
|
||
|
|
// FinishIngestionRun marks an ingestion run complete with status and summary JSON.
|
||
|
|
func (s *Store) FinishIngestionRun(id int64, status, summaryJSON string) error {
|
||
|
|
_, err := s.db.Exec(`
|
||
|
|
UPDATE ingestion_runs
|
||
|
|
SET finished_at = ?, status = ?, summary_json = ?
|
||
|
|
WHERE id = ?
|
||
|
|
`, time.Now().Unix(), status, nullString(summaryJSON), id)
|
||
|
|
if err != nil {
|
||
|
|
return fmt.Errorf("finish ingestion run: %w", err)
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}
|