Working on distribution routes to get data
This commit is contained in:
77
Database/os.go
Normal file
77
Database/os.go
Normal file
@@ -0,0 +1,77 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"log"
|
||||
)
|
||||
|
||||
type OS struct {
|
||||
ID string `json:"id"`
|
||||
Distribution string `json:"distribution"`
|
||||
Version string `json:"version"`
|
||||
End_of_support string `json:"end_of_support"`
|
||||
}
|
||||
|
||||
func GetOS(db *sql.DB) ([]OS, error) {
|
||||
var oses []OS
|
||||
rows, err := db.Query("SELECT * FROM dashboard_os")
|
||||
if err != nil {
|
||||
log.Println("Error querying list of OS", err)
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
for rows.Next() {
|
||||
var os OS
|
||||
err := rows.Scan(&os.ID, &os.Distribution, &os.Version, &os.End_of_support)
|
||||
if err != nil {
|
||||
log.Println("Error building list", err)
|
||||
}
|
||||
oses = append(oses, os)
|
||||
}
|
||||
return oses, err
|
||||
}
|
||||
|
||||
func GetOSbyID(db *sql.DB, id string) (OS, error) {
|
||||
var os OS
|
||||
if err := db.QueryRow("SELECT * FROM dashboard_os where id = ?", id).Scan(&os.ID, &os.Distribution, &os.Version, &os.End_of_support); err != nil {
|
||||
if err == sql.ErrNoRows {
|
||||
return os, nil
|
||||
}
|
||||
log.Println("Error getting OS by ID", err)
|
||||
}
|
||||
return os, nil
|
||||
}
|
||||
|
||||
func GetDistributionList(db *sql.DB) ([]string, error) {
|
||||
var list []string
|
||||
rows, err := db.Query("SELECT DISTINCT distribution FROM dashboard_os")
|
||||
if err != nil {
|
||||
log.Println("Error getting distribution list", err)
|
||||
}
|
||||
for rows.Next() {
|
||||
var os OS
|
||||
err := rows.Scan(&os.Distribution)
|
||||
if err != nil {
|
||||
log.Println("Error building distribution list", err)
|
||||
}
|
||||
list = append(list, os.Distribution)
|
||||
}
|
||||
return list, nil
|
||||
}
|
||||
|
||||
func GetVersionByDistributionList(db *sql.DB, d string) ([]string, error) {
|
||||
var list []string
|
||||
rows, err := db.Query("SELECT DISTINCT version FROM dashboard_os where distribution = ?", d)
|
||||
if err != nil {
|
||||
log.Println("Error getting distribution list", err)
|
||||
}
|
||||
for rows.Next() {
|
||||
var os OS
|
||||
err := rows.Scan(&os.Distribution)
|
||||
if err != nil {
|
||||
log.Println("Error building distribution list", err)
|
||||
}
|
||||
list = append(list, os.Distribution)
|
||||
}
|
||||
return list, nil
|
||||
}
|
||||
@@ -19,7 +19,6 @@ func dsn() string {
|
||||
}
|
||||
|
||||
func GetDatabaseConnection() *sql.DB {
|
||||
log.Println("dsn: ", dsn())
|
||||
DB_conn, err := sql.Open("mysql", dsn())
|
||||
if err != nil {
|
||||
log.Println("Database connection error : ", err)
|
||||
|
||||
Reference in New Issue
Block a user