All checks were successful
Co-authored-by: Jeffrey Smith <jasafpro@gmail.com> Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
44 lines
1006 B
Go
44 lines
1006 B
Go
package sqlite
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"armature/database"
|
|
)
|
|
|
|
// ── HealthStore ─────────────────────────────
|
|
|
|
type HealthStore struct{}
|
|
|
|
func NewHealthStore() *HealthStore { return &HealthStore{} }
|
|
|
|
// Prune deletes stale kernel data older than the given time.
|
|
func (s *HealthStore) Prune(ctx context.Context, before time.Time) (int64, error) {
|
|
var total int64
|
|
ts := before.UTC().Format("2006-01-02 15:04:05")
|
|
|
|
res, _ := database.DB.ExecContext(ctx,
|
|
`DELETE FROM ws_tickets WHERE expires_at < ?`, ts)
|
|
if res != nil {
|
|
n, _ := res.RowsAffected()
|
|
total += n
|
|
}
|
|
|
|
res, _ = database.DB.ExecContext(ctx,
|
|
`DELETE FROM rate_limit_counters WHERE window_start < ?`, ts)
|
|
if res != nil {
|
|
n, _ := res.RowsAffected()
|
|
total += n
|
|
}
|
|
|
|
res, _ = database.DB.ExecContext(ctx,
|
|
`DELETE FROM user_presence WHERE last_seen < ? AND status = 'offline'`, ts)
|
|
if res != nil {
|
|
n, _ := res.RowsAffected()
|
|
total += n
|
|
}
|
|
|
|
return total, nil
|
|
}
|