58 lines
1.1 KiB
Go
58 lines
1.1 KiB
Go
package gdb
|
|
|
|
import (
|
|
"github.com/aceberg/WatchYourLAN/internal/check"
|
|
"github.com/aceberg/WatchYourLAN/internal/models"
|
|
)
|
|
|
|
// Select - get all hosts
|
|
func Select(table string) (dbHosts []models.Host, ok bool) {
|
|
|
|
tab := db.Table(table)
|
|
err := tab.Find(&dbHosts).Error
|
|
|
|
return dbHosts, !check.IfError(err)
|
|
}
|
|
|
|
// SelectByID - get host by ID
|
|
func SelectByID(id int) (host models.Host) {
|
|
|
|
tab := db.Table("now")
|
|
tab.First(&host, id)
|
|
|
|
return host
|
|
}
|
|
|
|
// SelectByMAC - get all hosts by MAC
|
|
func SelectByMAC(table, mac string) (hosts []models.Host) {
|
|
|
|
tab := db.Table(table)
|
|
tab.Where("\"MAC\" = ?", mac).Find(&hosts)
|
|
|
|
return hosts
|
|
}
|
|
|
|
// SelectByDate - get all hosts by MAC and DATE
|
|
func SelectByDate(mac, date string) (hosts []models.Host) {
|
|
|
|
tab := db.Table("history")
|
|
tab.
|
|
Where("\"MAC\" = ?", mac).
|
|
Where("\"DATE\" LIKE ?", date+"%").
|
|
Find(&hosts)
|
|
|
|
return hosts
|
|
}
|
|
|
|
// SelectLatest - get latest hosts by MAC
|
|
func SelectLatest(mac string, number int) (hosts []models.Host) {
|
|
|
|
tab := db.Table("history")
|
|
tab.
|
|
Where("\"MAC\" = ?", mac).
|
|
Order("\"DATE\" DESC").
|
|
Limit(number).
|
|
Find(&hosts)
|
|
|
|
return hosts
|
|
}
|