feat: introduce database type (#982)

See https://github.com/ooni/probe/issues/2352

Co-authored-by: decfox <decfox@github.com>
This commit is contained in:
DecFox 2022-11-16 20:21:41 +05:30 committed by GitHub
commit 28aabe0947
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 144 additions and 94 deletions

View file

@ -7,7 +7,6 @@ import (
"github.com/apex/log"
"github.com/ooni/probe-cli/v3/cmd/ooniprobe/internal/cli/root"
"github.com/ooni/probe-cli/v3/cmd/ooniprobe/internal/output"
"github.com/ooni/probe-cli/v3/internal/database"
)
func init() {
@ -20,7 +19,7 @@ func init() {
return err
}
if *resultID > 0 {
measurements, err := database.ListMeasurements(probeCLI.DB(), *resultID)
measurements, err := probeCLI.DB().ListMeasurements(*resultID)
if err != nil {
log.WithError(err).Error("failed to list measurements")
return err
@ -63,7 +62,7 @@ func init() {
}
output.MeasurementSummary(msmtSummary)
} else {
doneResults, incompleteResults, err := database.ListResults(probeCLI.DB())
doneResults, incompleteResults, err := probeCLI.DB().ListResults()
if err != nil {
log.WithError(err).Error("failed to list results")
return err

View file

@ -25,7 +25,7 @@ func init() {
log.WithError(err).Error("failed to close the DB")
return err
}
if *force == true {
if *force {
os.RemoveAll(ctx.Home())
log.Infof("Deleted %s", ctx.Home())
} else {

View file

@ -12,7 +12,7 @@ import (
"github.com/upper/db/v4"
)
func deleteAll(sess db.Session, skipInteractive bool) error {
func deleteAll(d *database.Database, skipInteractive bool) error {
if skipInteractive == false {
answer := ""
confirm := &survey.Select{
@ -25,21 +25,21 @@ func deleteAll(sess db.Session, skipInteractive bool) error {
return errors.New("canceled by user")
}
}
doneResults, incompleteResults, err := database.ListResults(sess)
doneResults, incompleteResults, err := d.ListResults()
if err != nil {
log.WithError(err).Error("failed to list results")
return err
}
cnt := 0
for _, result := range incompleteResults {
err = database.DeleteResult(sess, result.Result.ID)
err = d.DeleteResult(result.Result.ID)
if err == db.ErrNoMoreRows {
log.WithError(err).Errorf("failed to delete result #%d", result.Result.ID)
}
cnt++
}
for _, result := range doneResults {
err = database.DeleteResult(sess, result.Result.ID)
err = d.DeleteResult(result.Result.ID)
if err == db.ErrNoMoreRows {
log.WithError(err).Errorf("failed to delete result #%d", result.Result.ID)
}
@ -68,7 +68,7 @@ func init() {
}
if *yes == true {
err = database.DeleteResult(ctx.DB(), *resultID)
err = ctx.DB().DeleteResult(*resultID)
if err == db.ErrNoMoreRows {
return errors.New("result not found")
}
@ -84,7 +84,7 @@ func init() {
if answer == "false" {
return errors.New("canceled by user")
}
err = database.DeleteResult(ctx.DB(), *resultID)
err = ctx.DB().DeleteResult(*resultID)
if err == db.ErrNoMoreRows {
return errors.New("result not found")
}

View file

@ -5,7 +5,6 @@ import (
"github.com/apex/log"
"github.com/ooni/probe-cli/v3/cmd/ooniprobe/internal/cli/root"
"github.com/ooni/probe-cli/v3/cmd/ooniprobe/internal/output"
"github.com/ooni/probe-cli/v3/internal/database"
)
func init() {
@ -17,7 +16,7 @@ func init() {
log.WithError(err).Error("failed to initialize root context")
return err
}
msmt, err := database.GetMeasurementJSON(ctx.DB(), *msmtID)
msmt, err := ctx.DB().GetMeasurementJSON(*msmtID)
if err != nil {
log.Errorf("error: %v", err)
return err