125 lines
2.7 KiB
Go
125 lines
2.7 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"gitea.seeseepuff.be/seeseemelk/mysqlite"
|
|
)
|
|
|
|
func (a *App) getAllTypes(column, table string) ([]string, error) {
|
|
var types []string
|
|
var err error
|
|
for row := range a.db.Query(fmt.Sprintf("SELECT %s FROM %s GROUP BY %s ORDER BY %s ASC", column, table, column, column)).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) GetAllBrands() ([]string, error) {
|
|
return a.getAllTypes("brand", "assets")
|
|
}
|
|
|
|
func (a *App) GetAllRamTypes() ([]string, error) {
|
|
return a.getAllTypes("type", "info_ram")
|
|
}
|
|
|
|
func (a *App) GetAllHddTypes() ([]string, error) {
|
|
return a.getAllTypes("type", "info_hdd")
|
|
}
|
|
|
|
func (a *App) GetAllHddFormFactors() ([]string, error) {
|
|
return a.getAllTypes("form_factor", "info_hdd")
|
|
}
|
|
|
|
func (a *App) GetAllHddConnections() ([]string, error) {
|
|
return a.getAllTypes("connection", "info_hdd")
|
|
}
|
|
|
|
func (a *App) GetAllHddSpeeds() ([]string, error) {
|
|
return a.getAllTypes("rpm", "info_hdd")
|
|
}
|
|
|
|
func (a *App) GetAllGroups(vm *CreateDeviceVM) error {
|
|
var err error
|
|
//vm.AssetBrands, err = a.GetAllBrands()
|
|
//if err != nil {
|
|
// return err
|
|
//}
|
|
//
|
|
//vm.RamTypes, err = a.GetAllRamTypes()
|
|
//if err != nil {
|
|
// return err
|
|
//}
|
|
//
|
|
//vm.HddTypes, err = a.GetAllHddTypes()
|
|
//if err != nil {
|
|
// return err
|
|
//}
|
|
//
|
|
//vm.HddFormFactors, err = a.GetAllHddFormFactors()
|
|
//if err != nil {
|
|
// return err
|
|
//}
|
|
//
|
|
//vm.HddFormFactors, err = a.GetAllHddConnections()
|
|
//if err != nil {
|
|
// return err
|
|
//}
|
|
//
|
|
//vm.HddRpms, err = a.GetAllHddSpeeds()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
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
|
|
}
|