49 lines
1.1 KiB
Go
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
|
|
}
|