watchyourlan/internal/db/db-connect.go
2022-12-28 22:01:30 +07:00

49 lines
1.1 KiB
Go

package db
import (
"database/sql"
"log"
// Import sqlite module
_ "modernc.org/sqlite"
"github.com/aceberg/WatchYourLAN/internal/check"
"github.com/aceberg/WatchYourLAN/internal/models"
)
func dbExec(path, sqlStatement string) {
db, err := sql.Open("sqlite", path)
check.IfError(err)
defer db.Close()
_, err = db.Exec(sqlStatement)
check.IfError(err)
}
// Select - select all hosts
func Select(path string) (dbHosts []models.Host) {
db, _ := sql.Open("sqlite", path)
defer db.Close()
sqlStatement := `SELECT * FROM "now" ORDER BY DATE DESC`
res, err := db.Query(sqlStatement)
if err != nil {
log.Fatal("ERROR: db_select: ", err)
}
dbHosts = []models.Host{}
for res.Next() {
var oneHost models.Host
err = res.Scan(&oneHost.ID, &oneHost.Name, &oneHost.IP, &oneHost.Mac, &oneHost.Hw, &oneHost.Date, &oneHost.Known, &oneHost.Now)
if err != nil {
log.Fatal(err)
}
oneHost.Name = unquoteStr(oneHost.Name)
oneHost.Hw = unquoteStr(oneHost.Hw)
dbHosts = append(dbHosts, oneHost)
}
//fmt.Println("Select all:", dbHosts)
return dbHosts
}