1
Fork 0
photoview/api/graphql/models/site_info.go

44 lines
882 B
Go
Raw Normal View History

2020-02-05 16:49:51 +01:00
package models
import (
"database/sql"
)
func initializeSiteInfoRow(db *sql.DB) error {
_, err := db.Exec("INSERT INTO site_info (initial_setup) VALUES (true)")
if err != nil {
return err
}
return nil
}
2020-02-05 16:49:51 +01:00
func GetSiteInfo(db *sql.DB) (*SiteInfo, error) {
rows, err := db.Query("SELECT * FROM site_info")
defer rows.Close()
2020-02-05 16:49:51 +01:00
if err != nil {
return nil, err
}
var initialSetup bool
var periodicScanInterval int
var concurrentWorkers int
2020-02-05 16:49:51 +01:00
if !rows.Next() {
// Entry does not exist
if err := initializeSiteInfoRow(db); err != nil {
2020-02-05 16:49:51 +01:00
return nil, err
}
initialSetup = true
} else {
if err := rows.Scan(&initialSetup, &periodicScanInterval, &concurrentWorkers); err != nil {
2020-02-05 16:49:51 +01:00
return nil, err
}
}
return &SiteInfo{
InitialSetup: initialSetup,
PeriodicScanInterval: periodicScanInterval,
ConcurrentWorkers: concurrentWorkers,
2020-02-05 16:49:51 +01:00
}, nil
}