46 lines
987 B
Go
46 lines
987 B
Go
package database
|
|
|
|
import (
|
|
"database/sql"
|
|
"errors"
|
|
"log"
|
|
|
|
"gopkg.in/guregu/null.v4"
|
|
)
|
|
|
|
type Package struct {
|
|
ID int `json:"id"`
|
|
Name null.String `json:"name"`
|
|
Active int `json:"active"`
|
|
}
|
|
|
|
func GetPackage(db *sql.DB) ([]Package, error) {
|
|
var packages []Package
|
|
rows, err := db.Query("SELECT * FROM dashboard_package")
|
|
if err != nil {
|
|
log.Println("Error querying list of OS", err)
|
|
}
|
|
defer rows.Close()
|
|
|
|
for rows.Next() {
|
|
var pkg Package
|
|
err := rows.Scan(&pkg.ID, &pkg.Name, &pkg.Active)
|
|
if err != nil {
|
|
log.Println("Error building list", err)
|
|
}
|
|
packages = append(packages, pkg)
|
|
}
|
|
return packages, err
|
|
}
|
|
|
|
func GetPackagebyID(db *sql.DB, id int64) (Package, error) {
|
|
var pkg Package
|
|
if err := db.QueryRow("SELECT * FROM dashboard_package where id = ?", id).Scan(&pkg.ID, &pkg.Name, &pkg.Active); err != nil {
|
|
if errors.Is(err, sql.ErrNoRows) {
|
|
return pkg, nil
|
|
}
|
|
log.Println("Error getting OS by ID", err)
|
|
}
|
|
return pkg, nil
|
|
}
|