Switching to sql.nulltype

This commit is contained in:
kirby 2024-03-18 16:13:44 +01:00
parent 6879221996
commit 45c6cebc2c
4 changed files with 16 additions and 10 deletions

View File

@ -3,13 +3,15 @@ package database
import ( import (
"database/sql" "database/sql"
"log" "log"
"gopkg.in/guregu/null.v4"
) )
type OS struct { type OS struct {
ID string `json:"id"` ID int `json:"id"`
Distribution string `json:"distribution"` Distribution null.String `json:"distribution"`
Version string `json:"version"` Version null.String `json:"version"`
End_of_support string `json:"end_of_support"` End_of_support null.String `json:"end_of_support"`
} }
func GetOS(db *sql.DB) ([]OS, error) { func GetOS(db *sql.DB) ([]OS, error) {
@ -42,8 +44,8 @@ func GetOSbyID(db *sql.DB, id string) (OS, error) {
return os, nil return os, nil
} }
func GetDistributionList(db *sql.DB) ([]string, error) { func GetDistributionList(db *sql.DB) ([]null.String, error) {
var list []string var list []null.String
rows, err := db.Query("SELECT DISTINCT distribution FROM dashboard_os") rows, err := db.Query("SELECT DISTINCT distribution FROM dashboard_os")
if err != nil { if err != nil {
log.Println("Error getting distribution list", err) log.Println("Error getting distribution list", err)
@ -59,8 +61,8 @@ func GetDistributionList(db *sql.DB) ([]string, error) {
return list, nil return list, nil
} }
func GetVersionByDistributionList(db *sql.DB, d string) ([]string, error) { func GetVersionByDistributionList(db *sql.DB, d string) ([]null.String, error) {
var list []string var list []null.String
rows, err := db.Query("SELECT DISTINCT version FROM dashboard_os where distribution = ?", d) rows, err := db.Query("SELECT DISTINCT version FROM dashboard_os where distribution = ?", d)
if err != nil { if err != nil {
log.Println("Error getting distribution list", err) log.Println("Error getting distribution list", err)

View File

@ -10,6 +10,7 @@ import (
"time" "time"
"github.com/gorilla/mux" "github.com/gorilla/mux"
"gopkg.in/guregu/null.v4"
) )
func RequestHandler(w http.ResponseWriter, r *http.Request) { func RequestHandler(w http.ResponseWriter, r *http.Request) {
@ -63,7 +64,7 @@ func GetOSbyID(w http.ResponseWriter, r *http.Request) {
} }
func GetDistributionList(w http.ResponseWriter, r *http.Request) { func GetDistributionList(w http.ResponseWriter, r *http.Request) {
var list []string var list []null.String
var err error var err error
t := time.Now() t := time.Now()
@ -82,7 +83,7 @@ func GetDistributionList(w http.ResponseWriter, r *http.Request) {
} }
func GetVersionByDistributionList(w http.ResponseWriter, r *http.Request) { func GetVersionByDistributionList(w http.ResponseWriter, r *http.Request) {
var list []string var list []null.String
var err error var err error
t := time.Now() t := time.Now()

1
go.mod
View File

@ -7,6 +7,7 @@ require (
github.com/go-sql-driver/mysql v1.8.0 github.com/go-sql-driver/mysql v1.8.0
github.com/gorilla/mux v1.8.1 github.com/gorilla/mux v1.8.1
github.com/joho/godotenv v1.5.1 github.com/joho/godotenv v1.5.1
gopkg.in/guregu/null.v4 v4.0.0
) )
require ( require (

2
go.sum
View File

@ -20,5 +20,7 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/guregu/null.v4 v4.0.0 h1:1Wm3S1WEA2I26Kq+6vcW+w0gcDo44YKYD7YIEJNHDjg=
gopkg.in/guregu/null.v4 v4.0.0/go.mod h1:YoQhUrADuG3i9WqesrCmpNRwm1ypAgSHYqoOcTu/JrI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=