Files
pcinv/data.go

78 lines
1.8 KiB
Go

package main
import "gitea.seeseepuff.be/seeseemelk/mysqlite"
func (a *App) GetAllBrands() ([]string, error) {
var brands []string
var err error
for row := range a.db.Query("SELECT brand FROM assets GROUP BY brand ORDER BY brand ASC").Range(&err) {
var name string
err := row.Scan(&name)
if err != nil {
return nil, err
}
brands = append(brands, name)
}
return brands, err
}
func (a *App) GetAllRAMTypes() ([]string, error) {
var types []string
var err error
for row := range a.db.Query("SELECT type FROM info_ram GROUP BY type ORDER BY type ASC").Range(&err) {
var name string
err := row.Scan(&name)
if err != nil {
return nil, err
}
types = append(types, name)
}
return types, err
}
func (a *App) GetAllTypes() ([]string, error) {
var types []string
var err error
for row := range a.db.Query("SELECT type FROM assets GROUP BY type ORDER BY type ASC").Range(&err) {
var name string
err := row.Scan(&name)
if err != nil {
return nil, err
}
types = append(types, name)
}
return types, err
}
func (a *App) GetAssetCount() (int, error) {
var count int
err := a.db.Query("SELECT COUNT(*) FROM assets").ScanSingle(&count)
return count, err
}
func (a *App) GetBrandCount() (int, error) {
var count int
err := a.db.Query("SELECT COUNT(DISTINCT brand) FROM assets").ScanSingle(&count)
return count, err
}
func (a *App) GetTotalRamCapacity() (int, error) {
var capacity int
err := a.db.Query("SELECT SUM(capacity) FROM info_ram").ScanSingle(&capacity)
return capacity, err
}
func (a *App) DeleteAsset(tx *mysqlite.Tx, qr int) error {
err := tx.Query("DELETE FROM assets WHERE qr=?").Bind(qr).Exec()
if err != nil {
return err
}
err = tx.Query("DELETE FROM info_ram WHERE asset=?").Bind(qr).Exec()
if err != nil {
return err
}
return nil
}