From 45c6cebc2c03400b8d650ff0a141a86bcb94491e Mon Sep 17 00:00:00 2001 From: kirby Date: Mon, 18 Mar 2024 16:13:44 +0100 Subject: [PATCH] Switching to sql.nulltype --- Database/os.go | 18 ++++++++++-------- Http/utils.go | 5 +++-- go.mod | 1 + go.sum | 2 ++ 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/Database/os.go b/Database/os.go index 80ba92b..eb7a672 100644 --- a/Database/os.go +++ b/Database/os.go @@ -3,13 +3,15 @@ package database import ( "database/sql" "log" + + "gopkg.in/guregu/null.v4" ) type OS struct { - ID string `json:"id"` - Distribution string `json:"distribution"` - Version string `json:"version"` - End_of_support string `json:"end_of_support"` + ID int `json:"id"` + Distribution null.String `json:"distribution"` + Version null.String `json:"version"` + End_of_support null.String `json:"end_of_support"` } func GetOS(db *sql.DB) ([]OS, error) { @@ -42,8 +44,8 @@ func GetOSbyID(db *sql.DB, id string) (OS, error) { return os, nil } -func GetDistributionList(db *sql.DB) ([]string, error) { - var list []string +func GetDistributionList(db *sql.DB) ([]null.String, error) { + var list []null.String rows, err := db.Query("SELECT DISTINCT distribution FROM dashboard_os") if err != nil { log.Println("Error getting distribution list", err) @@ -59,8 +61,8 @@ func GetDistributionList(db *sql.DB) ([]string, error) { return list, nil } -func GetVersionByDistributionList(db *sql.DB, d string) ([]string, error) { - var list []string +func GetVersionByDistributionList(db *sql.DB, d string) ([]null.String, error) { + var list []null.String rows, err := db.Query("SELECT DISTINCT version FROM dashboard_os where distribution = ?", d) if err != nil { log.Println("Error getting distribution list", err) diff --git a/Http/utils.go b/Http/utils.go index 041429e..9605a24 100644 --- a/Http/utils.go +++ b/Http/utils.go @@ -10,6 +10,7 @@ import ( "time" "github.com/gorilla/mux" + "gopkg.in/guregu/null.v4" ) 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) { - var list []string + var list []null.String var err error t := time.Now() @@ -82,7 +83,7 @@ func GetDistributionList(w http.ResponseWriter, r *http.Request) { } func GetVersionByDistributionList(w http.ResponseWriter, r *http.Request) { - var list []string + var list []null.String var err error t := time.Now() diff --git a/go.mod b/go.mod index 54f65f4..214e1df 100644 --- a/go.mod +++ b/go.mod @@ -7,6 +7,7 @@ require ( github.com/go-sql-driver/mysql v1.8.0 github.com/gorilla/mux v1.8.1 github.com/joho/godotenv v1.5.1 + gopkg.in/guregu/null.v4 v4.0.0 ) require ( diff --git a/go.sum b/go.sum index 7ecfbe3..8345b40 100644 --- a/go.sum +++ b/go.sum @@ -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/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 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/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=