watchyourlan/internal/db/sqlite.go
2023-10-05 23:53:47 +07:00

48 lines
783 B
Go

package db
import (
"log"
"sync"
"github.com/jmoiron/sqlx"
// Import sqlite module
_ "modernc.org/sqlite"
"github.com/aceberg/WatchYourLAN/internal/check"
"github.com/aceberg/WatchYourLAN/internal/models"
)
var mu sync.Mutex
func dbExec(path, sqlStatement string) {
mu.Lock()
db, err := sqlx.Connect("sqlite", path)
check.IfError(err)
defer db.Close()
_, err = db.Exec(sqlStatement)
mu.Unlock()
check.IfError(err)
}
// Select - select all hosts
func Select(path string) (dbHosts []models.Host) {
sqlStatement := `SELECT * FROM "now" ORDER BY DATE DESC`
mu.Lock()
db, _ := sqlx.Connect("sqlite", path)
defer db.Close()
err := db.Select(&dbHosts, sqlStatement)
mu.Unlock()
if err != nil {
log.Fatal("ERROR: db_select: ", err)
}
return dbHosts
}